head	1.2;
access;
symbols
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.1
	netbsd-9-3-RELEASE:1.1.1.1
	netbsd-9-2-RELEASE:1.1.1.1
	netbsd-9-1-RELEASE:1.1.1.1
	netbsd-8-2-RELEASE:1.1.1.1
	netbsd-9-0-RELEASE:1.1.1.1
	netbsd-9-0-RC2:1.1.1.1
	netbsd-9-0-RC1:1.1.1.1
	netbsd-9:1.1.1.1.0.6
	netbsd-9-base:1.1.1.1
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	netbsd-7-2-RELEASE:1.1.1.1.2.2
	netbsd-8-0-RELEASE:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	netbsd-7-1-2-RELEASE:1.1.1.1.2.2
	netbsd-7-1-1-RELEASE:1.1.1.1.2.2
	netbsd-8:1.1.1.1.0.4
	netbsd-8-base:1.1.1.1
	netbsd-7-1:1.1.1.1.2.2.0.4
	netbsd-7-1-RELEASE:1.1.1.1.2.2
	netbsd-7-1-RC2:1.1.1.1.2.2
	netbsd-7-1-RC1:1.1.1.1.2.2
	netbsd-7-0-2-RELEASE:1.1.1.1.2.2
	netbsd-7-0-1-RELEASE:1.1.1.1.2.2
	netbsd-7-0:1.1.1.1.2.2.0.2
	netbsd-7-0-RELEASE:1.1.1.1.2.2
	netbsd-7-0-RC3:1.1.1.1.2.2
	netbsd-7-0-RC2:1.1.1.1.2.2
	netbsd-7-0-RC1:1.1.1.1.2.2
	netbsd-7:1.1.1.1.0.2
	MesaLib-7-11-2:1.1.1.1
	xorg:1.1.1;
locks; strict;
comment	@// @;


1.2
date	2021.07.11.01.13.55;	author mrg;	state dead;
branches;
next	1.1;
commitid	c76nQ9XgeygSuv0D;

1.1
date	2015.01.05.02.40.57;	author mrg;	state Exp;
branches
	1.1.1.1;
next	;
commitid	kCK5W1nEEE3zrM4y;

1.1.1.1
date	2015.01.05.02.40.57;	author mrg;	state Exp;
branches
	1.1.1.1.2.1;
next	;
commitid	kCK5W1nEEE3zrM4y;

1.1.1.1.2.1
date	2015.01.05.02.40.57;	author snj;	state dead;
branches;
next	1.1.1.1.2.2;
commitid	rxZCYAOMk9cXe8cy;

1.1.1.1.2.2
date	2015.03.03.07.44.44;	author snj;	state Exp;
branches;
next	;
commitid	rxZCYAOMk9cXe8cy;


desc
@@


1.2
log
@remove dead mesa7 dist.
@
text
@/*
 * Copyright © 2008, 2009 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <assert.h>

extern "C" {
#include "main/core.h" /* for struct gl_context */
}

#include "ralloc.h"
#include "ast.h"
#include "glsl_parser_extras.h"
#include "glsl_parser.h"
#include "ir_optimization.h"
#include "loop_analysis.h"

_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *ctx,
					       GLenum target, void *mem_ctx)
{
   switch (target) {
   case GL_VERTEX_SHADER:   this->target = vertex_shader; break;
   case GL_FRAGMENT_SHADER: this->target = fragment_shader; break;
   case GL_GEOMETRY_SHADER: this->target = geometry_shader; break;
   }

   this->scanner = NULL;
   this->translation_unit.make_empty();
   this->symbols = new(mem_ctx) glsl_symbol_table;
   this->info_log = ralloc_strdup(mem_ctx, "");
   this->error = false;
   this->loop_or_switch_nesting = NULL;

   /* Set default language version and extensions */
   this->language_version = 110;
   this->es_shader = false;
   this->ARB_texture_rectangle_enable = true;

   /* OpenGL ES 2.0 has different defaults from desktop GL. */
   if (ctx->API == API_OPENGLES2) {
      this->language_version = 100;
      this->es_shader = true;
      this->ARB_texture_rectangle_enable = false;
   }

   this->extensions = &ctx->Extensions;

   this->Const.MaxLights = ctx->Const.MaxLights;
   this->Const.MaxClipPlanes = ctx->Const.MaxClipPlanes;
   this->Const.MaxTextureUnits = ctx->Const.MaxTextureUnits;
   this->Const.MaxTextureCoords = ctx->Const.MaxTextureCoordUnits;
   this->Const.MaxVertexAttribs = ctx->Const.VertexProgram.MaxAttribs;
   this->Const.MaxVertexUniformComponents = ctx->Const.VertexProgram.MaxUniformComponents;
   this->Const.MaxVaryingFloats = ctx->Const.MaxVarying * 4;
   this->Const.MaxVertexTextureImageUnits = ctx->Const.MaxVertexTextureImageUnits;
   this->Const.MaxCombinedTextureImageUnits = ctx->Const.MaxCombinedTextureImageUnits;
   this->Const.MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits;
   this->Const.MaxFragmentUniformComponents = ctx->Const.FragmentProgram.MaxUniformComponents;

   this->Const.MaxDrawBuffers = ctx->Const.MaxDrawBuffers;

   /* Note: Once the OpenGL 3.0 'forward compatible' context or the OpenGL 3.2
    * Core context is supported, this logic will need change.  Older versions of
    * GLSL are no longer supported outside the compatibility contexts of 3.x.
    */
   this->Const.GLSL_100ES = (ctx->API == API_OPENGLES2)
      || ctx->Extensions.ARB_ES2_compatibility;
   this->Const.GLSL_110 = (ctx->API == API_OPENGL);
   this->Const.GLSL_120 = (ctx->API == API_OPENGL)
      && (ctx->Const.GLSLVersion >= 120);
   this->Const.GLSL_130 = (ctx->API == API_OPENGL)
      && (ctx->Const.GLSLVersion >= 130);

   const unsigned lowest_version =
      (ctx->API == API_OPENGLES2) || ctx->Extensions.ARB_ES2_compatibility
      ? 100 : 110;
   const unsigned highest_version =
      (ctx->API == API_OPENGL) ? ctx->Const.GLSLVersion : 100;
   char *supported = ralloc_strdup(this, "");

   for (unsigned ver = lowest_version; ver <= highest_version; ver += 10) {
      const char *const prefix = (ver == lowest_version)
	 ? ""
	 : ((ver == highest_version) ? ", and " : ", ");

      ralloc_asprintf_append(& supported, "%s%d.%02d%s",
			     prefix,
			     ver / 100, ver % 100,
			     (ver == 100) ? " ES" : "");
   }

   this->supported_version_string = supported;
}

const char *
_mesa_glsl_shader_target_name(enum _mesa_glsl_parser_targets target)
{
   switch (target) {
   case vertex_shader:   return "vertex";
   case fragment_shader: return "fragment";
   case geometry_shader: return "geometry";
   }

   assert(!"Should not get here.");
   return "unknown";
}


void
_mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
		 const char *fmt, ...)
{
   va_list ap;

   state->error = true;

   assert(state->info_log != NULL);
   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): error: ",
					    locp->source,
					    locp->first_line,
					    locp->first_column);
   va_start(ap, fmt);
   ralloc_vasprintf_append(&state->info_log, fmt, ap);
   va_end(ap);
   ralloc_strcat(&state->info_log, "\n");
}


void
_mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
		   const char *fmt, ...)
{
   va_list ap;

   assert(state->info_log != NULL);
   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): warning: ",
					    locp->source,
					    locp->first_line,
					    locp->first_column);
   va_start(ap, fmt);
   ralloc_vasprintf_append(&state->info_log, fmt, ap);
   va_end(ap);
   ralloc_strcat(&state->info_log, "\n");
}


/**
 * Enum representing the possible behaviors that can be specified in
 * an #extension directive.
 */
enum ext_behavior {
   extension_disable,
   extension_enable,
   extension_require,
   extension_warn
};

/**
 * Element type for _mesa_glsl_supported_extensions
 */
struct _mesa_glsl_extension {
   /**
    * Name of the extension when referred to in a GLSL extension
    * statement
    */
   const char *name;

   /** True if this extension is available to vertex shaders */
   bool avail_in_VS;

   /** True if this extension is available to geometry shaders */
   bool avail_in_GS;

   /** True if this extension is available to fragment shaders */
   bool avail_in_FS;

   /** True if this extension is available to desktop GL shaders */
   bool avail_in_GL;

   /** True if this extension is available to GLES shaders */
   bool avail_in_ES;

   /**
    * Flag in the gl_extensions struct indicating whether this
    * extension is supported by the driver, or
    * &gl_extensions::dummy_true if supported by all drivers.
    *
    * Note: the type (GLboolean gl_extensions::*) is a "pointer to
    * member" type, the type-safe alternative to the "offsetof" macro.
    * In a nutshell:
    *
    * - foo bar::* p declares p to be an "offset" to a field of type
    *   foo that exists within struct bar
    * - &bar::baz computes the "offset" of field baz within struct bar
    * - x.*p accesses the field of x that exists at "offset" p
    * - x->*p is equivalent to (*x).*p
    */
   const GLboolean gl_extensions::* supported_flag;

   /**
    * Flag in the _mesa_glsl_parse_state struct that should be set
    * when this extension is enabled.
    *
    * See note in _mesa_glsl_extension::supported_flag about "pointer
    * to member" types.
    */
   bool _mesa_glsl_parse_state::* enable_flag;

   /**
    * Flag in the _mesa_glsl_parse_state struct that should be set
    * when the shader requests "warn" behavior for this extension.
    *
    * See note in _mesa_glsl_extension::supported_flag about "pointer
    * to member" types.
    */
   bool _mesa_glsl_parse_state::* warn_flag;


   bool compatible_with_state(const _mesa_glsl_parse_state *state) const;
   void set_flags(_mesa_glsl_parse_state *state, ext_behavior behavior) const;
};

#define EXT(NAME, VS, GS, FS, GL, ES, SUPPORTED_FLAG)                   \
   { "GL_" #NAME, VS, GS, FS, GL, ES, &gl_extensions::SUPPORTED_FLAG,   \
         &_mesa_glsl_parse_state::NAME##_enable,                        \
         &_mesa_glsl_parse_state::NAME##_warn }

/**
 * Table of extensions that can be enabled/disabled within a shader,
 * and the conditions under which they are supported.
 */
static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
   /*                                  target availability  API availability */
   /* name                             VS     GS     FS     GL     ES         supported flag */
   EXT(ARB_draw_buffers,               false, false, true,  true,  false,     dummy_true),
   EXT(ARB_draw_instanced,             true,  false, false, true,  false,     ARB_draw_instanced),
   EXT(ARB_explicit_attrib_location,   true,  false, true,  true,  false,     ARB_explicit_attrib_location),
   EXT(ARB_fragment_coord_conventions, true,  false, true,  true,  false,     ARB_fragment_coord_conventions),
   EXT(ARB_texture_rectangle,          true,  false, true,  true,  false,     dummy_true),
   EXT(EXT_texture_array,              true,  false, true,  true,  false,     EXT_texture_array),
   EXT(ARB_shader_texture_lod,         true,  false, true,  true,  false,     ARB_shader_texture_lod),
   EXT(ARB_shader_stencil_export,      false, false, true,  true,  false,     ARB_shader_stencil_export),
   EXT(AMD_conservative_depth,         true,  false, true,  true,  false,     AMD_conservative_depth),
   EXT(AMD_shader_stencil_export,      false, false, true,  true,  false,     ARB_shader_stencil_export),
   EXT(OES_texture_3D,                 true,  false, true,  false, true,      EXT_texture3D),
};

#undef EXT


/**
 * Determine whether a given extension is compatible with the target,
 * API, and extension information in the current parser state.
 */
bool _mesa_glsl_extension::compatible_with_state(const _mesa_glsl_parse_state *
                                                 state) const
{
   /* Check that this extension matches the type of shader we are
    * compiling to.
    */
   switch (state->target) {
   case vertex_shader:
      if (!this->avail_in_VS) {
         return false;
      }
      break;
   case geometry_shader:
      if (!this->avail_in_GS) {
         return false;
      }
      break;
   case fragment_shader:
      if (!this->avail_in_FS) {
         return false;
      }
      break;
   default:
      assert (!"Unrecognized shader target");
      return false;
   }

   /* Check that this extension matches whether we are compiling
    * for desktop GL or GLES.
    */
   if (state->es_shader) {
      if (!this->avail_in_ES) return false;
   } else {
      if (!this->avail_in_GL) return false;
   }

   /* Check that this extension is supported by the OpenGL
    * implementation.
    *
    * Note: the ->* operator indexes into state->extensions by the
    * offset this->supported_flag.  See
    * _mesa_glsl_extension::supported_flag for more info.
    */
   return state->extensions->*(this->supported_flag);
}

/**
 * Set the appropriate flags in the parser state to establish the
 * given behavior for this extension.
 */
void _mesa_glsl_extension::set_flags(_mesa_glsl_parse_state *state,
                                     ext_behavior behavior) const
{
   /* Note: the ->* operator indexes into state by the
    * offsets this->enable_flag and this->warn_flag.  See
    * _mesa_glsl_extension::supported_flag for more info.
    */
   state->*(this->enable_flag) = (behavior != extension_disable);
   state->*(this->warn_flag)   = (behavior == extension_warn);
}

/**
 * Find an extension by name in _mesa_glsl_supported_extensions.  If
 * the name is not found, return NULL.
 */
static const _mesa_glsl_extension *find_extension(const char *name)
{
   for (unsigned i = 0; i < Elements(_mesa_glsl_supported_extensions); ++i) {
      if (strcmp(name, _mesa_glsl_supported_extensions[i].name) == 0) {
         return &_mesa_glsl_supported_extensions[i];
      }
   }
   return NULL;
}


bool
_mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
			     const char *behavior_string, YYLTYPE *behavior_locp,
			     _mesa_glsl_parse_state *state)
{
   ext_behavior behavior;
   if (strcmp(behavior_string, "warn") == 0) {
      behavior = extension_warn;
   } else if (strcmp(behavior_string, "require") == 0) {
      behavior = extension_require;
   } else if (strcmp(behavior_string, "enable") == 0) {
      behavior = extension_enable;
   } else if (strcmp(behavior_string, "disable") == 0) {
      behavior = extension_disable;
   } else {
      _mesa_glsl_error(behavior_locp, state,
		       "Unknown extension behavior `%s'",
		       behavior_string);
      return false;
   }

   if (strcmp(name, "all") == 0) {
      if ((behavior == extension_enable) || (behavior == extension_require)) {
	 _mesa_glsl_error(name_locp, state, "Cannot %s all extensions",
			  (behavior == extension_enable)
			  ? "enable" : "require");
	 return false;
      } else {
         for (unsigned i = 0;
              i < Elements(_mesa_glsl_supported_extensions); ++i) {
            const _mesa_glsl_extension *extension
               = &_mesa_glsl_supported_extensions[i];
            if (extension->compatible_with_state(state)) {
               _mesa_glsl_supported_extensions[i].set_flags(state, behavior);
            }
         }
      }
   } else {
      const _mesa_glsl_extension *extension = find_extension(name);
      if (extension && extension->compatible_with_state(state)) {
         extension->set_flags(state, behavior);
      } else {
         static const char *const fmt = "extension `%s' unsupported in %s shader";

         if (behavior == extension_require) {
            _mesa_glsl_error(name_locp, state, fmt,
                             name, _mesa_glsl_shader_target_name(state->target));
            return false;
         } else {
            _mesa_glsl_warning(name_locp, state, fmt,
                               name, _mesa_glsl_shader_target_name(state->target));
         }
      }
   }

   return true;
}

void
_mesa_ast_type_qualifier_print(const struct ast_type_qualifier *q)
{
   if (q->flags.q.constant)
      printf("const ");

   if (q->flags.q.invariant)
      printf("invariant ");

   if (q->flags.q.attribute)
      printf("attribute ");

   if (q->flags.q.varying)
      printf("varying ");

   if (q->flags.q.in && q->flags.q.out)
      printf("inout ");
   else {
      if (q->flags.q.in)
	 printf("in ");

      if (q->flags.q.out)
	 printf("out ");
   }

   if (q->flags.q.centroid)
      printf("centroid ");
   if (q->flags.q.uniform)
      printf("uniform ");
   if (q->flags.q.smooth)
      printf("smooth ");
   if (q->flags.q.flat)
      printf("flat ");
   if (q->flags.q.noperspective)
      printf("noperspective ");
}


void
ast_node::print(void) const
{
   printf("unhandled node ");
}


ast_node::ast_node(void)
{
   this->location.source = 0;
   this->location.line = 0;
   this->location.column = 0;
}


static void
ast_opt_array_size_print(bool is_array, const ast_expression *array_size)
{
   if (is_array) {
      printf("[ ");

      if (array_size)
	 array_size->print();

      printf("] ");
   }
}


void
ast_compound_statement::print(void) const
{
   printf("{\n");
   
   foreach_list_const(n, &this->statements) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }

   printf("}\n");
}


ast_compound_statement::ast_compound_statement(int new_scope,
					       ast_node *statements)
{
   this->new_scope = new_scope;

   if (statements != NULL) {
      this->statements.push_degenerate_list_at_head(&statements->link);
   }
}


void
ast_expression::print(void) const
{
   switch (oper) {
   case ast_assign:
   case ast_mul_assign:
   case ast_div_assign:
   case ast_mod_assign:
   case ast_add_assign:
   case ast_sub_assign:
   case ast_ls_assign:
   case ast_rs_assign:
   case ast_and_assign:
   case ast_xor_assign:
   case ast_or_assign:
      subexpressions[0]->print();
      printf("%s ", operator_string(oper));
      subexpressions[1]->print();
      break;

   case ast_field_selection:
      subexpressions[0]->print();
      printf(". %s ", primary_expression.identifier);
      break;

   case ast_plus:
   case ast_neg:
   case ast_bit_not:
   case ast_logic_not:
   case ast_pre_inc:
   case ast_pre_dec:
      printf("%s ", operator_string(oper));
      subexpressions[0]->print();
      break;

   case ast_post_inc:
   case ast_post_dec:
      subexpressions[0]->print();
      printf("%s ", operator_string(oper));
      break;

   case ast_conditional:
      subexpressions[0]->print();
      printf("? ");
      subexpressions[1]->print();
      printf(": ");
      subexpressions[2]->print();
      break;

   case ast_array_index:
      subexpressions[0]->print();
      printf("[ ");
      subexpressions[1]->print();
      printf("] ");
      break;

   case ast_function_call: {
      subexpressions[0]->print();
      printf("( ");

      foreach_list_const (n, &this->expressions) {
	 if (n != this->expressions.get_head())
	    printf(", ");

	 ast_node *ast = exec_node_data(ast_node, n, link);
	 ast->print();
      }

      printf(") ");
      break;
   }

   case ast_identifier:
      printf("%s ", primary_expression.identifier);
      break;

   case ast_int_constant:
      printf("%d ", primary_expression.int_constant);
      break;

   case ast_uint_constant:
      printf("%u ", primary_expression.uint_constant);
      break;

   case ast_float_constant:
      printf("%f ", primary_expression.float_constant);
      break;

   case ast_bool_constant:
      printf("%s ",
	     primary_expression.bool_constant
	     ? "true" : "false");
      break;

   case ast_sequence: {
      printf("( ");
      foreach_list_const(n, & this->expressions) {
	 if (n != this->expressions.get_head())
	    printf(", ");

	 ast_node *ast = exec_node_data(ast_node, n, link);
	 ast->print();
      }
      printf(") ");
      break;
   }

   default:
      assert(0);
      break;
   }
}

ast_expression::ast_expression(int oper,
			       ast_expression *ex0,
			       ast_expression *ex1,
			       ast_expression *ex2)
{
   this->oper = ast_operators(oper);
   this->subexpressions[0] = ex0;
   this->subexpressions[1] = ex1;
   this->subexpressions[2] = ex2;
}


void
ast_expression_statement::print(void) const
{
   if (expression)
      expression->print();

   printf("; ");
}


ast_expression_statement::ast_expression_statement(ast_expression *ex) :
   expression(ex)
{
   /* empty */
}


void
ast_function::print(void) const
{
   return_type->print();
   printf(" %s (", identifier);

   foreach_list_const(n, & this->parameters) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }

   printf(")");
}


ast_function::ast_function(void)
   : is_definition(false), signature(NULL)
{
   /* empty */
}


void
ast_fully_specified_type::print(void) const
{
   _mesa_ast_type_qualifier_print(& qualifier);
   specifier->print();
}


void
ast_parameter_declarator::print(void) const
{
   type->print();
   if (identifier)
      printf("%s ", identifier);
   ast_opt_array_size_print(is_array, array_size);
}


void
ast_function_definition::print(void) const
{
   prototype->print();
   body->print();
}


void
ast_declaration::print(void) const
{
   printf("%s ", identifier);
   ast_opt_array_size_print(is_array, array_size);

   if (initializer) {
      printf("= ");
      initializer->print();
   }
}


ast_declaration::ast_declaration(char *identifier, int is_array,
				 ast_expression *array_size,
				 ast_expression *initializer)
{
   this->identifier = identifier;
   this->is_array = is_array;
   this->array_size = array_size;
   this->initializer = initializer;
}


void
ast_declarator_list::print(void) const
{
   assert(type || invariant);

   if (type)
      type->print();
   else
      printf("invariant ");

   foreach_list_const (ptr, & this->declarations) {
      if (ptr != this->declarations.get_head())
	 printf(", ");

      ast_node *ast = exec_node_data(ast_node, ptr, link);
      ast->print();
   }

   printf("; ");
}


ast_declarator_list::ast_declarator_list(ast_fully_specified_type *type)
{
   this->type = type;
   this->invariant = false;
}

void
ast_jump_statement::print(void) const
{
   switch (mode) {
   case ast_continue:
      printf("continue; ");
      break;
   case ast_break:
      printf("break; ");
      break;
   case ast_return:
      printf("return ");
      if (opt_return_value)
	 opt_return_value->print();

      printf("; ");
      break;
   case ast_discard:
      printf("discard; ");
      break;
   }
}


ast_jump_statement::ast_jump_statement(int mode, ast_expression *return_value)
{
   this->mode = ast_jump_modes(mode);

   if (mode == ast_return)
      opt_return_value = return_value;
}


void
ast_selection_statement::print(void) const
{
   printf("if ( ");
   condition->print();
   printf(") ");

   then_statement->print();

   if (else_statement) {
      printf("else ");
      else_statement->print();
   }
   
}


ast_selection_statement::ast_selection_statement(ast_expression *condition,
						 ast_node *then_statement,
						 ast_node *else_statement)
{
   this->condition = condition;
   this->then_statement = then_statement;
   this->else_statement = else_statement;
}


void
ast_iteration_statement::print(void) const
{
   switch (mode) {
   case ast_for:
      printf("for( ");
      if (init_statement)
	 init_statement->print();
      printf("; ");

      if (condition)
	 condition->print();
      printf("; ");

      if (rest_expression)
	 rest_expression->print();
      printf(") ");

      body->print();
      break;

   case ast_while:
      printf("while ( ");
      if (condition)
	 condition->print();
      printf(") ");
      body->print();
      break;

   case ast_do_while:
      printf("do ");
      body->print();
      printf("while ( ");
      if (condition)
	 condition->print();
      printf("); ");
      break;
   }
}


ast_iteration_statement::ast_iteration_statement(int mode,
						 ast_node *init,
						 ast_node *condition,
						 ast_expression *rest_expression,
						 ast_node *body)
{
   this->mode = ast_iteration_modes(mode);
   this->init_statement = init;
   this->condition = condition;
   this->rest_expression = rest_expression;
   this->body = body;
}


void
ast_struct_specifier::print(void) const
{
   printf("struct %s { ", name);
   foreach_list_const(n, &this->declarations) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }
   printf("} ");
}


ast_struct_specifier::ast_struct_specifier(char *identifier,
					   ast_node *declarator_list)
{
   if (identifier == NULL) {
      static unsigned anon_count = 1;
      identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
      anon_count++;
   }
   name = identifier;
   this->declarations.push_degenerate_list_at_head(&declarator_list->link);
}

bool
do_common_optimization(exec_list *ir, bool linked, unsigned max_unroll_iterations)
{
   GLboolean progress = GL_FALSE;

   progress = lower_instructions(ir, SUB_TO_ADD_NEG) || progress;

   if (linked) {
      progress = do_function_inlining(ir) || progress;
      progress = do_dead_functions(ir) || progress;
   }
   progress = do_structure_splitting(ir) || progress;
   progress = do_if_simplification(ir) || progress;
   progress = do_discard_simplification(ir) || progress;
   progress = do_copy_propagation(ir) || progress;
   progress = do_copy_propagation_elements(ir) || progress;
   if (linked)
      progress = do_dead_code(ir) || progress;
   else
      progress = do_dead_code_unlinked(ir) || progress;
   progress = do_dead_code_local(ir) || progress;
   progress = do_tree_grafting(ir) || progress;
   progress = do_constant_propagation(ir) || progress;
   if (linked)
      progress = do_constant_variable(ir) || progress;
   else
      progress = do_constant_variable_unlinked(ir) || progress;
   progress = do_constant_folding(ir) || progress;
   progress = do_algebraic(ir) || progress;
   progress = do_lower_jumps(ir) || progress;
   progress = do_vec_index_to_swizzle(ir) || progress;
   progress = do_swizzle_swizzle(ir) || progress;
   progress = do_noop_swizzle(ir) || progress;

   progress = optimize_redundant_jumps(ir) || progress;

   loop_state *ls = analyze_loop_variables(ir);
   if (ls->loop_found) {
      progress = set_loop_controls(ir, ls) || progress;
      progress = unroll_loops(ir, ls, max_unroll_iterations) || progress;
   }
   delete ls;

   return progress;
}

extern "C" {

/**
 * To be called at GL teardown time, this frees compiler datastructures.
 *
 * After calling this, any previously compiled shaders and shader
 * programs would be invalid.  So this should happen at approximately
 * program exit.
 */
void
_mesa_destroy_shader_compiler(void)
{
   _mesa_destroy_shader_compiler_caches();

   _mesa_glsl_release_types();
}

/**
 * Releases compiler caches to trade off performance for memory.
 *
 * Intended to be used with glReleaseShaderCompiler().
 */
void
_mesa_destroy_shader_compiler_caches(void)
{
   _mesa_glsl_release_functions();
}

}
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@re-import parts of the Mesa 7.11.2 code for the r300 DRI driver (which
is disabled in our Mesa 10.x due to LLVM issues.)
@
text
@@


1.1.1.1.2.1
log
@file glsl_parser_extras.cpp was added on branch netbsd-7 on 2015-03-03 07:44:44 +0000
@
text
@d1 957
@


1.1.1.1.2.2
log
@Pull up following revision(s) (requested by mrg in ticket #559):
	xsrc/external/mit/MesaLib7/dist/include/GL/gl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/gl_mangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glext.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glfbdev.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glu.h: 1.2
	xsrc/external/mit/MesaLib7/dist/include/GL/glu_mangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glx.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glx_mangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/glxext.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/internal/dri_interface.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/internal/sarea.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/mesa_wgl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/osmesa.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/vms_x_fix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/wglext.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GL/wmesa.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES/egl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES/gl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES/glext.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES/glplatform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES2/gl2.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES2/gl2ext.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/GLES2/gl2platform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/KHR/khrplatform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/c99/inttypes.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/c99/stdbool.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/c99/stdint.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/i810_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/i915_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/i965_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/pci_id_driver_map.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/r200_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/r300_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/r600_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/include/pci_ids/radeon_pci_ids.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/dbghelp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_atomic.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_bitmask.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_bitmask.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_blit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_blit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_blitter.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_blitter.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_box.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_cache.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_cache.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_caps.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_caps.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_clear.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_cpu_detect.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_cpu_detect.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_describe.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_describe.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_memory.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_refcnt.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_refcnt.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_stack.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_stack.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_symbol.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_debug_symbol.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dirty_flags.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dirty_surfaces.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dl.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_double_list.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_draw.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_draw_quad.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_draw_quad.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dump.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dump_defines.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dump_state.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_dynarray.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_fifo.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format.csv: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_latc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_latc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_other.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_other.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_pack.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_parse.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_r11g11b10f.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_rgb9e5.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_rgtc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_rgtc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_s3tc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_s3tc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_srgb.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_srgb.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_table.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_tests.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_tests.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_yuv.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_yuv.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_zs.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_format_zs.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_framebuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_framebuffer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_gen_mipmap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_gen_mipmap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_half.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_half.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_handle_table.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_handle_table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_hash.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_hash.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_hash_table.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_hash_table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_index_modify.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_index_modify.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_init.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_inlines.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_keymap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_keymap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_linear.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_linear.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_linkage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_linkage.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_math.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_math.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_memory.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_mm.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_mm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_network.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_network.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_pack_color.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_pointer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_prim.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_pstipple.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_pstipple.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_rect.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_rect.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_resource.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_ringbuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_ringbuffer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_sampler.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_sampler.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_simple_list.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_simple_screen.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_simple_shaders.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_simple_shaders.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_slab.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_slab.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_snprintf.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_split_prim.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_sse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_staging.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_staging.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_string.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_surface.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_surface.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_surfaces.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_surfaces.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_texture.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_tile.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_tile.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_time.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_transfer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_transfer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_upload_mgr.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_upload_mgr.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_vbuf_mgr.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/gallium/auxiliary/util/u_vbuf_mgr.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/Makefile.template: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/README: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/SConscript: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ast.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ast_expr.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ast_function.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ast_to_hir.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ast_type.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtin_function.cpp: 1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtin_stubs.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtin_types.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtin_variables.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/abs: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/acos: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/acosh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/all: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/any: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/asin: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/asinh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/atan: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/atanh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/ceil: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/clamp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/cos: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/cosh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/cross: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/dFdx: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/dFdy: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/degrees: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/distance: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/dot: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/equal: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/exp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/exp2: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/faceforward: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/floor: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/fract: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/ftransform: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/fwidth: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/greaterThan: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/greaterThanEqual: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/inversesqrt: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/length: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/lessThan: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/lessThanEqual: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/log: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/log2: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/matrixCompMult: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/max: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/min: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/mix: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/mod: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/modf: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/noise1: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/noise2: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/noise3: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/noise4: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/normalize: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/not: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/notEqual: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/outerProduct: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/pow: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/radians: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/reflect: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/refract: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/round: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/roundEven: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/sign: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/sin: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/sinh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/smoothstep: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/sqrt: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/step: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/tan: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/tanh: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/transpose: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/ir/trunc: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/100.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/100.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/110.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/110.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/120.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/120.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/130.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/130.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/ARB_shader_texture_lod.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/ARB_shader_texture_lod.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/ARB_texture_rectangle.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/ARB_texture_rectangle.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/EXT_texture_array.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/EXT_texture_array.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/OES_texture_3D.frag: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/profiles/OES_texture_3D.vert: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/generate_builtins.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/generate_matrixCompMultGLSL.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/generate_outerProductGLSL.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/generate_transposeGLSL.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/texture_builtins.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/builtins/tools/texture_builtins.pyo: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/README: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp-lex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp-lex.l: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp-parse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp-parse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp-parse.y: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/glcpp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glcpp/pp.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_lexer.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_lexer.ll: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_parser.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_parser.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_parser.yy: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_parser_extras.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_parser_extras.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_symbol_table.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_symbol_table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_types.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/glsl_types.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/hir_field_selection.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir.h: 1.2
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_basic_block.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_basic_block.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_clone.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_constant_expression.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_expression_flattening.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_expression_flattening.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_function.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_function_can_inline.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_function_detect_recursion.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_function_inlining.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_hierarchical_visitor.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_hierarchical_visitor.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_hv_accept.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_import_prototypes.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_optimization.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_print_visitor.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_print_visitor.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_reader.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_reader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_rvalue_visitor.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_rvalue_visitor.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_set_program_inouts.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_validate.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_variable.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_variable_refcount.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_variable_refcount.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ir_visitor.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/link_functions.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/linker.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/linker.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/list.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/loop_analysis.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/loop_analysis.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/loop_controls.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/loop_unroll.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_discard.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_if_to_cond_assign.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_instructions.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_jumps.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_mat_op_to_vec.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_noise.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_texture_projection.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_variable_index_to_cond_assign.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_vec_index_to_cond_assign.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_vec_index_to_swizzle.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/lower_vector.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/main.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_algebraic.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_constant_folding.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_constant_propagation.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_constant_variable.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_copy_propagation.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_copy_propagation_elements.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_dead_code.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_dead_code_local.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_dead_functions.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_discard_simplification.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_function_inlining.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_if_simplification.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_noop_swizzle.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_redundant_jumps.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_structure_splitting.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_swizzle_swizzle.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/opt_tree_grafting.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/program.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/ralloc.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/glsl/ralloc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/s_expression.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/s_expression.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/strtod.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/glsl/strtod.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/SConscript: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_dispatch.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_entrypoint.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_gentable.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_getproc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_mapi_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_nop.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_priv.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_sparc.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_x86-64.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapi_x86.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapitable.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glapitemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glprocs.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glthread.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/glthread.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/glapi/sources.mak: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/entry.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/entry.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/entry_x86-64_tls.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/entry_x86_tls.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/entry_x86_tsd.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/mapi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/mapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/mapi_abi.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/mapi_glapi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/mapi_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/sources.mak: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/stub.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/stub.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/table.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_compiler.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_current.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_current.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_execmem.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_execmem.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_macros.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_thread.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mapi/mapi/u_thread.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/common/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/common/driverfuncs.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/common/driverfuncs.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/common/meta.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/common/meta.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/depthtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/dri_test.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/dri_util.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/dri_util.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/drirenderbuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/drirenderbuffer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/drisw_util.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/drisw_util.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/memops.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/mmio.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/mmx.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/spantmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/spantmp2.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/spantmp_common.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/stenciltmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/texmem.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/texmem.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/utils.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/utils.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/vblank.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/vblank.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlconfig.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlconfig.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/de.po: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/es.po: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/fr.po: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/nl.po: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/options.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/sv.po: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/common/xmlpool/t_options.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/SConscript: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/memory_pool.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/memory_pool.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r300_fragprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r300_fragprog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog_dump.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r500_fragprog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_code.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_code.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_swizzles.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_list.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_list.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_pair_dead_sources.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_print.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_swizzle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_variable.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/compiler/radeon_variable.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_blit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_blit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_cmdbuf.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_cmdbuf.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_emit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_emit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_fragprog_common.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_fragprog_common.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_reg.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_render.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_render.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_shader.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_state.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_state.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_swtcl.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_swtcl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_tex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_tex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_texstate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_vertprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/r300_vertprog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_bo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_bo_int_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_bo_legacy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_bo_legacy.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_bocs_wrapper.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_buffer_objects.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_buffer_objects.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_chipset.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cmdbuf.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_common.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_common.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_common_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_common_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cs.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cs_int_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cs_legacy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cs_legacy.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_cs_space_drm.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_debug.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_dma.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_dma.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_fbo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_lock.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_lock.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_mesa_to_rc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_mesa_to_rc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_mipmap_tree.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_mipmap_tree.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_pixel_read.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_queryobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_queryobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_screen.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_screen.h: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_span.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_span.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_tex_copy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_tex_getimage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_texture.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_tile.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/radeon_tile.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/server/radeon.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/server/radeon_dri.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/server/radeon_macros.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/r300/server/radeon_reg.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_blit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_blit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bo_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bo_int_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bo_legacy.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_bocs_wrapper.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_buffer_objects.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_chipset.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cmdbuf.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_common.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_common.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_common_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_common_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs_int_drm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs_legacy.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_cs_space_drm.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_debug.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_dma.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_dma.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_fbo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_ioctl.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_ioctl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_lock.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_lock.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_maos.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_maos.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_maos_verts.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_pixel_read.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_queryobj.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_queryobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_sanity.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_sanity.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_screen.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_screen.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_span.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_span.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_state.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_state.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_state_init.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_swtcl.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_swtcl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tcl.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tcl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tex_copy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_texstate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_texture.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tile.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/radeon_tile.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/server/radeon.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/server/radeon_dri.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/server/radeon_macros.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/dri/radeon/server/radeon_reg.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/osmesa/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/osmesa/Makefile.win: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/osmesa/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/osmesa/osmesa.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/osmesa/osmesa.def: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/fakeglx.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/fxmesa.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/glxapi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/glxapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/glxheader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/realglx.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/realglx.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xfonts.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xfonts.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_api.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_buffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_dd.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_glide.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_glide.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_image.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_image.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_line.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_span.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xm_tri.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xmesa.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xmesaP.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xmesa_x.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/drivers/x11/xmesa_xf86.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/APIspec.dtd: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/APIspec.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/APIspec.xml: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/APIspecutil.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/accum.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/accum.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_arrayelt.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_arrayelt.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_exec.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_exec.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_exec_es1.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_exec_es2.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_loopback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_loopback.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_noop.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_noop.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_validate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/api_validate.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/arbprogram.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/arbprogram.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/arrayobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/arrayobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/atifragshader.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/atifragshader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/attrib.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/attrib.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/bitset.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/blend.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/blend.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/bufferobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/bufferobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/buffers.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/buffers.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/clear.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/clear.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/clip.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/clip.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/colormac.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/colortab.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/colortab.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/compiler.h: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/condrender.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/condrender.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/config.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/context.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/convolve.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/convolve.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/core.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/cpuinfo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/cpuinfo.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dd.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/debug.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/depth.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/depth.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/depthstencil.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/depthstencil.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dispatch.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dlist.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dlist.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dlopen.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/dlopen.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/drawpix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/drawpix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/drawtex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/drawtex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/enable.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/enable.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/enums.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/enums.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/es_generator.py: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/eval.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/eval.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/execmem.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/extensions.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/extensions.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/fbobject.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/fbobject.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/feedback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/feedback.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/ff_fragment_shader.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/ffvertex_prog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/ffvertex_prog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/fog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/fog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/formats.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/formats.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/framebuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/framebuffer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/get.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/get.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/getstring.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/git_sha1.h: 1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/glheader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/hash.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/hash.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/hint.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/hint.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/histogram.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/histogram.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/image.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/image.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/imports.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/imports.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/light.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/light.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/lines.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/lines.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/macros.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/matrix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/matrix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mfeatures.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mipmap.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mipmap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mm.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/mtypes.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/multisample.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/multisample.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/nvprogram.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/nvprogram.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pack.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pack.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pbo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pbo.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixel.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixel.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixelstore.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixelstore.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixeltransfer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/pixeltransfer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/points.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/points.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/polygon.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/polygon.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/querymatrix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/queryobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/queryobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/rastpos.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/rastpos.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/readpix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/readpix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/remap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/remap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/remap_helper.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/renderbuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/renderbuffer.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/samplerobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/samplerobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/scissor.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/scissor.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shaderapi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shaderapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shaderobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shaderobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shared.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/shared.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/simple_list.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/state.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/state.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/stencil.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/stencil.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/syncobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/syncobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_fxt1.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_fxt1.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_rgtc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_rgtc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_rgtc_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_s3tc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texcompress_s3tc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texenv.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texenv.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texenvprogram.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texfetch.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texfetch.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texfetch_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texformat.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texformat.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texgen.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texgen.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texgetimage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texgetimage.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/teximage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/teximage.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texpal.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texpal.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texparam.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texparam.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texstate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texstate.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texstore.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texstore.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texturebarrier.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/texturebarrier.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/transformfeedback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/transformfeedback.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/uniforms.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/uniforms.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/varray.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/varray.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/version.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/version.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/viewport.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/viewport.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/vsnprintf.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/vtxfmt.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/main/vtxfmt.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_clip_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_copy_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_debug_clip.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_debug_norm.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_debug_util.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_debug_xform.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_dotprod_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_eval.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_eval.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_matrix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_matrix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_norm_tmp.h: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_trans_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_translate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_translate.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_vector.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_vector.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_xform.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_xform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/math/m_xform_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/ppc/common_ppc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/ppc/common_ppc_features.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/arbprogparse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/arbprogparse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/hash_table.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/hash_table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/ir_to_mesa.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/ir_to_mesa.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/lex.yy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/nvfragparse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/nvfragparse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/nvvertparse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/nvvertparse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_cache.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_cache.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_execute.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_execute.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_instruction.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_instruction.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_noise.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_noise.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_optimize.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_optimize.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_parameter.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_parameter.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_parameter_layout.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_parameter_layout.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_print.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_print.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_statevars.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_statevars.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_uniform.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/prog_uniform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_lexer.l: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_parse.tab.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_parse.tab.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_parse.y: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_parse_extra.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/program_parser.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/programopt.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/programopt.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/register_allocate.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/register_allocate.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/sampler.cpp: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/sampler.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/symbol_table.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/program/symbol_table.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/clip.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/norm.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/sparc.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/sparc.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/sparc_matrix.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/sparc/xform.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_blend.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_clip.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_constbuf.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_constbuf.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_depth.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_framebuffer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_msaa.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_pixeltransfer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_rasterizer.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_sampler.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_scissor.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_shader.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_shader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_stipple.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_atom_viewport.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cache.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_accum.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_accum.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_bitmap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_bitmap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_blit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_blit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_bufferobjects.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_bufferobjects.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_clear.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_clear.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_condrender.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_condrender.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_drawpixels.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_drawpixels.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_drawtex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_drawtex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_eglimage.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_eglimage.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_fbo.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_fbo.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_feedback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_feedback.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_flush.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_flush.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_program.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_program.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_queryobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_queryobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_rasterpos.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_rasterpos.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_readpixels.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_readpixels.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_strings.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_strings.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_syncobj.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_syncobj.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_texture.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_texturebarrier.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_texturebarrier.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_viewport.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_viewport.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_xformfb.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_cb_xformfb.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_debug.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_debug.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_draw.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_draw_feedback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_extensions.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_extensions.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_format.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_format.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_gen_mipmap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_gen_mipmap.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_gl_api.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_manager.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_manager.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_mesa_to_tgsi.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_mesa_to_tgsi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_program.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_program.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_texture.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/state_tracker/st_texture.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aaline.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aaline.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aalinetemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aatriangle.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aatriangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_aatritemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_accum.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_accum.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_alpha.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_alpha.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_atifragshader.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_atifragshader.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_bitmap.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_blend.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_blend.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_blit.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_clear.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_copypix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_depth.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_depth.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_drawpix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_feedback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_feedback.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_fog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_fog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_fragprog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_fragprog.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_lines.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_lines.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_linetemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_logic.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_logic.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_masking.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_masking.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_points.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_points.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_readpix.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_span.c: 1.2
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_span.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_spantemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_stencil.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_stencil.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_texcombine.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_texcombine.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_texfilter.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_texfilter.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_texrender.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_triangle.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_triangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_tritemp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_zoom.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/s_zoom.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast/swrast.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_triangle.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_triangle.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_tritmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/ss_vb.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/swrast_setup/swrast_setup.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_pipeline.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_pipeline.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_rasterpos.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_cliptmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_fog.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_light.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_lighttmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_normals.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_points.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_program.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_render.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_rendertmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_texgen.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_texmat.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vb_vertex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vertex.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vertex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vertex_generic.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vertex_sse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vp_build.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/t_vp_build.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl/tnl.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/NOTES.imm: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_capi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_napi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_tapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_vapi.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_vb.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_dmatmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_dmatmp2.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_rendertmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_triemit.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_tritmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_unfilled.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_vb.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_vbtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/tnl_dd/t_dd_vertex.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/descrip.mms: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_attrib.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_attrib_tmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_context.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_context.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec_api.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec_array.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_exec_eval.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_rebase.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_save.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_save.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_save_api.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_save_draw.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_save_loopback.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_split.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_split.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_split_copy.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/vbo/vbo_split_inplace.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86-64/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86-64/x86-64.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86-64/x86-64.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86-64/xform4.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow_normal.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow_xform1.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow_xform2.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow_xform3.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/3dnow_xform4.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/Makefile: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/assyntax.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/clip_args.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/common_x86.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/common_x86_asm.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/common_x86_asm.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/common_x86_features.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/gen_matypes.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/mmx.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/mmx_blend.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/mmx_blendtmp.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/norm_args.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/read_rgba_span_x86.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/read_rgba_span_x86.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/rtasm/x86sse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/rtasm/x86sse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse_normal.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse_xform1.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse_xform2.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse_xform3.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/sse_xform4.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_cliptest.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_xform.c: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_xform.h: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_xform2.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_xform3.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/x86_xform4.S: 1.1.1.1
	xsrc/external/mit/MesaLib7/dist/src/mesa/x86/xform_args.h: 1.1.1.1
re-import parts of the Mesa 7.11.2 code for the r300 DRI driver (which
is disabled in our Mesa 10.x due to LLVM issues.)
@
text
@a0 957
/*
 * Copyright © 2008, 2009 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <assert.h>

extern "C" {
#include "main/core.h" /* for struct gl_context */
}

#include "ralloc.h"
#include "ast.h"
#include "glsl_parser_extras.h"
#include "glsl_parser.h"
#include "ir_optimization.h"
#include "loop_analysis.h"

_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *ctx,
					       GLenum target, void *mem_ctx)
{
   switch (target) {
   case GL_VERTEX_SHADER:   this->target = vertex_shader; break;
   case GL_FRAGMENT_SHADER: this->target = fragment_shader; break;
   case GL_GEOMETRY_SHADER: this->target = geometry_shader; break;
   }

   this->scanner = NULL;
   this->translation_unit.make_empty();
   this->symbols = new(mem_ctx) glsl_symbol_table;
   this->info_log = ralloc_strdup(mem_ctx, "");
   this->error = false;
   this->loop_or_switch_nesting = NULL;

   /* Set default language version and extensions */
   this->language_version = 110;
   this->es_shader = false;
   this->ARB_texture_rectangle_enable = true;

   /* OpenGL ES 2.0 has different defaults from desktop GL. */
   if (ctx->API == API_OPENGLES2) {
      this->language_version = 100;
      this->es_shader = true;
      this->ARB_texture_rectangle_enable = false;
   }

   this->extensions = &ctx->Extensions;

   this->Const.MaxLights = ctx->Const.MaxLights;
   this->Const.MaxClipPlanes = ctx->Const.MaxClipPlanes;
   this->Const.MaxTextureUnits = ctx->Const.MaxTextureUnits;
   this->Const.MaxTextureCoords = ctx->Const.MaxTextureCoordUnits;
   this->Const.MaxVertexAttribs = ctx->Const.VertexProgram.MaxAttribs;
   this->Const.MaxVertexUniformComponents = ctx->Const.VertexProgram.MaxUniformComponents;
   this->Const.MaxVaryingFloats = ctx->Const.MaxVarying * 4;
   this->Const.MaxVertexTextureImageUnits = ctx->Const.MaxVertexTextureImageUnits;
   this->Const.MaxCombinedTextureImageUnits = ctx->Const.MaxCombinedTextureImageUnits;
   this->Const.MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits;
   this->Const.MaxFragmentUniformComponents = ctx->Const.FragmentProgram.MaxUniformComponents;

   this->Const.MaxDrawBuffers = ctx->Const.MaxDrawBuffers;

   /* Note: Once the OpenGL 3.0 'forward compatible' context or the OpenGL 3.2
    * Core context is supported, this logic will need change.  Older versions of
    * GLSL are no longer supported outside the compatibility contexts of 3.x.
    */
   this->Const.GLSL_100ES = (ctx->API == API_OPENGLES2)
      || ctx->Extensions.ARB_ES2_compatibility;
   this->Const.GLSL_110 = (ctx->API == API_OPENGL);
   this->Const.GLSL_120 = (ctx->API == API_OPENGL)
      && (ctx->Const.GLSLVersion >= 120);
   this->Const.GLSL_130 = (ctx->API == API_OPENGL)
      && (ctx->Const.GLSLVersion >= 130);

   const unsigned lowest_version =
      (ctx->API == API_OPENGLES2) || ctx->Extensions.ARB_ES2_compatibility
      ? 100 : 110;
   const unsigned highest_version =
      (ctx->API == API_OPENGL) ? ctx->Const.GLSLVersion : 100;
   char *supported = ralloc_strdup(this, "");

   for (unsigned ver = lowest_version; ver <= highest_version; ver += 10) {
      const char *const prefix = (ver == lowest_version)
	 ? ""
	 : ((ver == highest_version) ? ", and " : ", ");

      ralloc_asprintf_append(& supported, "%s%d.%02d%s",
			     prefix,
			     ver / 100, ver % 100,
			     (ver == 100) ? " ES" : "");
   }

   this->supported_version_string = supported;
}

const char *
_mesa_glsl_shader_target_name(enum _mesa_glsl_parser_targets target)
{
   switch (target) {
   case vertex_shader:   return "vertex";
   case fragment_shader: return "fragment";
   case geometry_shader: return "geometry";
   }

   assert(!"Should not get here.");
   return "unknown";
}


void
_mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
		 const char *fmt, ...)
{
   va_list ap;

   state->error = true;

   assert(state->info_log != NULL);
   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): error: ",
					    locp->source,
					    locp->first_line,
					    locp->first_column);
   va_start(ap, fmt);
   ralloc_vasprintf_append(&state->info_log, fmt, ap);
   va_end(ap);
   ralloc_strcat(&state->info_log, "\n");
}


void
_mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
		   const char *fmt, ...)
{
   va_list ap;

   assert(state->info_log != NULL);
   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): warning: ",
					    locp->source,
					    locp->first_line,
					    locp->first_column);
   va_start(ap, fmt);
   ralloc_vasprintf_append(&state->info_log, fmt, ap);
   va_end(ap);
   ralloc_strcat(&state->info_log, "\n");
}


/**
 * Enum representing the possible behaviors that can be specified in
 * an #extension directive.
 */
enum ext_behavior {
   extension_disable,
   extension_enable,
   extension_require,
   extension_warn
};

/**
 * Element type for _mesa_glsl_supported_extensions
 */
struct _mesa_glsl_extension {
   /**
    * Name of the extension when referred to in a GLSL extension
    * statement
    */
   const char *name;

   /** True if this extension is available to vertex shaders */
   bool avail_in_VS;

   /** True if this extension is available to geometry shaders */
   bool avail_in_GS;

   /** True if this extension is available to fragment shaders */
   bool avail_in_FS;

   /** True if this extension is available to desktop GL shaders */
   bool avail_in_GL;

   /** True if this extension is available to GLES shaders */
   bool avail_in_ES;

   /**
    * Flag in the gl_extensions struct indicating whether this
    * extension is supported by the driver, or
    * &gl_extensions::dummy_true if supported by all drivers.
    *
    * Note: the type (GLboolean gl_extensions::*) is a "pointer to
    * member" type, the type-safe alternative to the "offsetof" macro.
    * In a nutshell:
    *
    * - foo bar::* p declares p to be an "offset" to a field of type
    *   foo that exists within struct bar
    * - &bar::baz computes the "offset" of field baz within struct bar
    * - x.*p accesses the field of x that exists at "offset" p
    * - x->*p is equivalent to (*x).*p
    */
   const GLboolean gl_extensions::* supported_flag;

   /**
    * Flag in the _mesa_glsl_parse_state struct that should be set
    * when this extension is enabled.
    *
    * See note in _mesa_glsl_extension::supported_flag about "pointer
    * to member" types.
    */
   bool _mesa_glsl_parse_state::* enable_flag;

   /**
    * Flag in the _mesa_glsl_parse_state struct that should be set
    * when the shader requests "warn" behavior for this extension.
    *
    * See note in _mesa_glsl_extension::supported_flag about "pointer
    * to member" types.
    */
   bool _mesa_glsl_parse_state::* warn_flag;


   bool compatible_with_state(const _mesa_glsl_parse_state *state) const;
   void set_flags(_mesa_glsl_parse_state *state, ext_behavior behavior) const;
};

#define EXT(NAME, VS, GS, FS, GL, ES, SUPPORTED_FLAG)                   \
   { "GL_" #NAME, VS, GS, FS, GL, ES, &gl_extensions::SUPPORTED_FLAG,   \
         &_mesa_glsl_parse_state::NAME##_enable,                        \
         &_mesa_glsl_parse_state::NAME##_warn }

/**
 * Table of extensions that can be enabled/disabled within a shader,
 * and the conditions under which they are supported.
 */
static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
   /*                                  target availability  API availability */
   /* name                             VS     GS     FS     GL     ES         supported flag */
   EXT(ARB_draw_buffers,               false, false, true,  true,  false,     dummy_true),
   EXT(ARB_draw_instanced,             true,  false, false, true,  false,     ARB_draw_instanced),
   EXT(ARB_explicit_attrib_location,   true,  false, true,  true,  false,     ARB_explicit_attrib_location),
   EXT(ARB_fragment_coord_conventions, true,  false, true,  true,  false,     ARB_fragment_coord_conventions),
   EXT(ARB_texture_rectangle,          true,  false, true,  true,  false,     dummy_true),
   EXT(EXT_texture_array,              true,  false, true,  true,  false,     EXT_texture_array),
   EXT(ARB_shader_texture_lod,         true,  false, true,  true,  false,     ARB_shader_texture_lod),
   EXT(ARB_shader_stencil_export,      false, false, true,  true,  false,     ARB_shader_stencil_export),
   EXT(AMD_conservative_depth,         true,  false, true,  true,  false,     AMD_conservative_depth),
   EXT(AMD_shader_stencil_export,      false, false, true,  true,  false,     ARB_shader_stencil_export),
   EXT(OES_texture_3D,                 true,  false, true,  false, true,      EXT_texture3D),
};

#undef EXT


/**
 * Determine whether a given extension is compatible with the target,
 * API, and extension information in the current parser state.
 */
bool _mesa_glsl_extension::compatible_with_state(const _mesa_glsl_parse_state *
                                                 state) const
{
   /* Check that this extension matches the type of shader we are
    * compiling to.
    */
   switch (state->target) {
   case vertex_shader:
      if (!this->avail_in_VS) {
         return false;
      }
      break;
   case geometry_shader:
      if (!this->avail_in_GS) {
         return false;
      }
      break;
   case fragment_shader:
      if (!this->avail_in_FS) {
         return false;
      }
      break;
   default:
      assert (!"Unrecognized shader target");
      return false;
   }

   /* Check that this extension matches whether we are compiling
    * for desktop GL or GLES.
    */
   if (state->es_shader) {
      if (!this->avail_in_ES) return false;
   } else {
      if (!this->avail_in_GL) return false;
   }

   /* Check that this extension is supported by the OpenGL
    * implementation.
    *
    * Note: the ->* operator indexes into state->extensions by the
    * offset this->supported_flag.  See
    * _mesa_glsl_extension::supported_flag for more info.
    */
   return state->extensions->*(this->supported_flag);
}

/**
 * Set the appropriate flags in the parser state to establish the
 * given behavior for this extension.
 */
void _mesa_glsl_extension::set_flags(_mesa_glsl_parse_state *state,
                                     ext_behavior behavior) const
{
   /* Note: the ->* operator indexes into state by the
    * offsets this->enable_flag and this->warn_flag.  See
    * _mesa_glsl_extension::supported_flag for more info.
    */
   state->*(this->enable_flag) = (behavior != extension_disable);
   state->*(this->warn_flag)   = (behavior == extension_warn);
}

/**
 * Find an extension by name in _mesa_glsl_supported_extensions.  If
 * the name is not found, return NULL.
 */
static const _mesa_glsl_extension *find_extension(const char *name)
{
   for (unsigned i = 0; i < Elements(_mesa_glsl_supported_extensions); ++i) {
      if (strcmp(name, _mesa_glsl_supported_extensions[i].name) == 0) {
         return &_mesa_glsl_supported_extensions[i];
      }
   }
   return NULL;
}


bool
_mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
			     const char *behavior_string, YYLTYPE *behavior_locp,
			     _mesa_glsl_parse_state *state)
{
   ext_behavior behavior;
   if (strcmp(behavior_string, "warn") == 0) {
      behavior = extension_warn;
   } else if (strcmp(behavior_string, "require") == 0) {
      behavior = extension_require;
   } else if (strcmp(behavior_string, "enable") == 0) {
      behavior = extension_enable;
   } else if (strcmp(behavior_string, "disable") == 0) {
      behavior = extension_disable;
   } else {
      _mesa_glsl_error(behavior_locp, state,
		       "Unknown extension behavior `%s'",
		       behavior_string);
      return false;
   }

   if (strcmp(name, "all") == 0) {
      if ((behavior == extension_enable) || (behavior == extension_require)) {
	 _mesa_glsl_error(name_locp, state, "Cannot %s all extensions",
			  (behavior == extension_enable)
			  ? "enable" : "require");
	 return false;
      } else {
         for (unsigned i = 0;
              i < Elements(_mesa_glsl_supported_extensions); ++i) {
            const _mesa_glsl_extension *extension
               = &_mesa_glsl_supported_extensions[i];
            if (extension->compatible_with_state(state)) {
               _mesa_glsl_supported_extensions[i].set_flags(state, behavior);
            }
         }
      }
   } else {
      const _mesa_glsl_extension *extension = find_extension(name);
      if (extension && extension->compatible_with_state(state)) {
         extension->set_flags(state, behavior);
      } else {
         static const char *const fmt = "extension `%s' unsupported in %s shader";

         if (behavior == extension_require) {
            _mesa_glsl_error(name_locp, state, fmt,
                             name, _mesa_glsl_shader_target_name(state->target));
            return false;
         } else {
            _mesa_glsl_warning(name_locp, state, fmt,
                               name, _mesa_glsl_shader_target_name(state->target));
         }
      }
   }

   return true;
}

void
_mesa_ast_type_qualifier_print(const struct ast_type_qualifier *q)
{
   if (q->flags.q.constant)
      printf("const ");

   if (q->flags.q.invariant)
      printf("invariant ");

   if (q->flags.q.attribute)
      printf("attribute ");

   if (q->flags.q.varying)
      printf("varying ");

   if (q->flags.q.in && q->flags.q.out)
      printf("inout ");
   else {
      if (q->flags.q.in)
	 printf("in ");

      if (q->flags.q.out)
	 printf("out ");
   }

   if (q->flags.q.centroid)
      printf("centroid ");
   if (q->flags.q.uniform)
      printf("uniform ");
   if (q->flags.q.smooth)
      printf("smooth ");
   if (q->flags.q.flat)
      printf("flat ");
   if (q->flags.q.noperspective)
      printf("noperspective ");
}


void
ast_node::print(void) const
{
   printf("unhandled node ");
}


ast_node::ast_node(void)
{
   this->location.source = 0;
   this->location.line = 0;
   this->location.column = 0;
}


static void
ast_opt_array_size_print(bool is_array, const ast_expression *array_size)
{
   if (is_array) {
      printf("[ ");

      if (array_size)
	 array_size->print();

      printf("] ");
   }
}


void
ast_compound_statement::print(void) const
{
   printf("{\n");
   
   foreach_list_const(n, &this->statements) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }

   printf("}\n");
}


ast_compound_statement::ast_compound_statement(int new_scope,
					       ast_node *statements)
{
   this->new_scope = new_scope;

   if (statements != NULL) {
      this->statements.push_degenerate_list_at_head(&statements->link);
   }
}


void
ast_expression::print(void) const
{
   switch (oper) {
   case ast_assign:
   case ast_mul_assign:
   case ast_div_assign:
   case ast_mod_assign:
   case ast_add_assign:
   case ast_sub_assign:
   case ast_ls_assign:
   case ast_rs_assign:
   case ast_and_assign:
   case ast_xor_assign:
   case ast_or_assign:
      subexpressions[0]->print();
      printf("%s ", operator_string(oper));
      subexpressions[1]->print();
      break;

   case ast_field_selection:
      subexpressions[0]->print();
      printf(". %s ", primary_expression.identifier);
      break;

   case ast_plus:
   case ast_neg:
   case ast_bit_not:
   case ast_logic_not:
   case ast_pre_inc:
   case ast_pre_dec:
      printf("%s ", operator_string(oper));
      subexpressions[0]->print();
      break;

   case ast_post_inc:
   case ast_post_dec:
      subexpressions[0]->print();
      printf("%s ", operator_string(oper));
      break;

   case ast_conditional:
      subexpressions[0]->print();
      printf("? ");
      subexpressions[1]->print();
      printf(": ");
      subexpressions[2]->print();
      break;

   case ast_array_index:
      subexpressions[0]->print();
      printf("[ ");
      subexpressions[1]->print();
      printf("] ");
      break;

   case ast_function_call: {
      subexpressions[0]->print();
      printf("( ");

      foreach_list_const (n, &this->expressions) {
	 if (n != this->expressions.get_head())
	    printf(", ");

	 ast_node *ast = exec_node_data(ast_node, n, link);
	 ast->print();
      }

      printf(") ");
      break;
   }

   case ast_identifier:
      printf("%s ", primary_expression.identifier);
      break;

   case ast_int_constant:
      printf("%d ", primary_expression.int_constant);
      break;

   case ast_uint_constant:
      printf("%u ", primary_expression.uint_constant);
      break;

   case ast_float_constant:
      printf("%f ", primary_expression.float_constant);
      break;

   case ast_bool_constant:
      printf("%s ",
	     primary_expression.bool_constant
	     ? "true" : "false");
      break;

   case ast_sequence: {
      printf("( ");
      foreach_list_const(n, & this->expressions) {
	 if (n != this->expressions.get_head())
	    printf(", ");

	 ast_node *ast = exec_node_data(ast_node, n, link);
	 ast->print();
      }
      printf(") ");
      break;
   }

   default:
      assert(0);
      break;
   }
}

ast_expression::ast_expression(int oper,
			       ast_expression *ex0,
			       ast_expression *ex1,
			       ast_expression *ex2)
{
   this->oper = ast_operators(oper);
   this->subexpressions[0] = ex0;
   this->subexpressions[1] = ex1;
   this->subexpressions[2] = ex2;
}


void
ast_expression_statement::print(void) const
{
   if (expression)
      expression->print();

   printf("; ");
}


ast_expression_statement::ast_expression_statement(ast_expression *ex) :
   expression(ex)
{
   /* empty */
}


void
ast_function::print(void) const
{
   return_type->print();
   printf(" %s (", identifier);

   foreach_list_const(n, & this->parameters) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }

   printf(")");
}


ast_function::ast_function(void)
   : is_definition(false), signature(NULL)
{
   /* empty */
}


void
ast_fully_specified_type::print(void) const
{
   _mesa_ast_type_qualifier_print(& qualifier);
   specifier->print();
}


void
ast_parameter_declarator::print(void) const
{
   type->print();
   if (identifier)
      printf("%s ", identifier);
   ast_opt_array_size_print(is_array, array_size);
}


void
ast_function_definition::print(void) const
{
   prototype->print();
   body->print();
}


void
ast_declaration::print(void) const
{
   printf("%s ", identifier);
   ast_opt_array_size_print(is_array, array_size);

   if (initializer) {
      printf("= ");
      initializer->print();
   }
}


ast_declaration::ast_declaration(char *identifier, int is_array,
				 ast_expression *array_size,
				 ast_expression *initializer)
{
   this->identifier = identifier;
   this->is_array = is_array;
   this->array_size = array_size;
   this->initializer = initializer;
}


void
ast_declarator_list::print(void) const
{
   assert(type || invariant);

   if (type)
      type->print();
   else
      printf("invariant ");

   foreach_list_const (ptr, & this->declarations) {
      if (ptr != this->declarations.get_head())
	 printf(", ");

      ast_node *ast = exec_node_data(ast_node, ptr, link);
      ast->print();
   }

   printf("; ");
}


ast_declarator_list::ast_declarator_list(ast_fully_specified_type *type)
{
   this->type = type;
   this->invariant = false;
}

void
ast_jump_statement::print(void) const
{
   switch (mode) {
   case ast_continue:
      printf("continue; ");
      break;
   case ast_break:
      printf("break; ");
      break;
   case ast_return:
      printf("return ");
      if (opt_return_value)
	 opt_return_value->print();

      printf("; ");
      break;
   case ast_discard:
      printf("discard; ");
      break;
   }
}


ast_jump_statement::ast_jump_statement(int mode, ast_expression *return_value)
{
   this->mode = ast_jump_modes(mode);

   if (mode == ast_return)
      opt_return_value = return_value;
}


void
ast_selection_statement::print(void) const
{
   printf("if ( ");
   condition->print();
   printf(") ");

   then_statement->print();

   if (else_statement) {
      printf("else ");
      else_statement->print();
   }
   
}


ast_selection_statement::ast_selection_statement(ast_expression *condition,
						 ast_node *then_statement,
						 ast_node *else_statement)
{
   this->condition = condition;
   this->then_statement = then_statement;
   this->else_statement = else_statement;
}


void
ast_iteration_statement::print(void) const
{
   switch (mode) {
   case ast_for:
      printf("for( ");
      if (init_statement)
	 init_statement->print();
      printf("; ");

      if (condition)
	 condition->print();
      printf("; ");

      if (rest_expression)
	 rest_expression->print();
      printf(") ");

      body->print();
      break;

   case ast_while:
      printf("while ( ");
      if (condition)
	 condition->print();
      printf(") ");
      body->print();
      break;

   case ast_do_while:
      printf("do ");
      body->print();
      printf("while ( ");
      if (condition)
	 condition->print();
      printf("); ");
      break;
   }
}


ast_iteration_statement::ast_iteration_statement(int mode,
						 ast_node *init,
						 ast_node *condition,
						 ast_expression *rest_expression,
						 ast_node *body)
{
   this->mode = ast_iteration_modes(mode);
   this->init_statement = init;
   this->condition = condition;
   this->rest_expression = rest_expression;
   this->body = body;
}


void
ast_struct_specifier::print(void) const
{
   printf("struct %s { ", name);
   foreach_list_const(n, &this->declarations) {
      ast_node *ast = exec_node_data(ast_node, n, link);
      ast->print();
   }
   printf("} ");
}


ast_struct_specifier::ast_struct_specifier(char *identifier,
					   ast_node *declarator_list)
{
   if (identifier == NULL) {
      static unsigned anon_count = 1;
      identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
      anon_count++;
   }
   name = identifier;
   this->declarations.push_degenerate_list_at_head(&declarator_list->link);
}

bool
do_common_optimization(exec_list *ir, bool linked, unsigned max_unroll_iterations)
{
   GLboolean progress = GL_FALSE;

   progress = lower_instructions(ir, SUB_TO_ADD_NEG) || progress;

   if (linked) {
      progress = do_function_inlining(ir) || progress;
      progress = do_dead_functions(ir) || progress;
   }
   progress = do_structure_splitting(ir) || progress;
   progress = do_if_simplification(ir) || progress;
   progress = do_discard_simplification(ir) || progress;
   progress = do_copy_propagation(ir) || progress;
   progress = do_copy_propagation_elements(ir) || progress;
   if (linked)
      progress = do_dead_code(ir) || progress;
   else
      progress = do_dead_code_unlinked(ir) || progress;
   progress = do_dead_code_local(ir) || progress;
   progress = do_tree_grafting(ir) || progress;
   progress = do_constant_propagation(ir) || progress;
   if (linked)
      progress = do_constant_variable(ir) || progress;
   else
      progress = do_constant_variable_unlinked(ir) || progress;
   progress = do_constant_folding(ir) || progress;
   progress = do_algebraic(ir) || progress;
   progress = do_lower_jumps(ir) || progress;
   progress = do_vec_index_to_swizzle(ir) || progress;
   progress = do_swizzle_swizzle(ir) || progress;
   progress = do_noop_swizzle(ir) || progress;

   progress = optimize_redundant_jumps(ir) || progress;

   loop_state *ls = analyze_loop_variables(ir);
   if (ls->loop_found) {
      progress = set_loop_controls(ir, ls) || progress;
      progress = unroll_loops(ir, ls, max_unroll_iterations) || progress;
   }
   delete ls;

   return progress;
}

extern "C" {

/**
 * To be called at GL teardown time, this frees compiler datastructures.
 *
 * After calling this, any previously compiled shaders and shader
 * programs would be invalid.  So this should happen at approximately
 * program exit.
 */
void
_mesa_destroy_shader_compiler(void)
{
   _mesa_destroy_shader_compiler_caches();

   _mesa_glsl_release_types();
}

/**
 * Releases compiler caches to trade off performance for memory.
 *
 * Intended to be used with glReleaseShaderCompiler().
 */
void
_mesa_destroy_shader_compiler_caches(void)
{
   _mesa_glsl_release_functions();
}

}
@


