mesa: glsl: grab latest fixes from gallium-0.1 branch

Includes:
1. Fixes failed asserting about bad swizzles in src reg emit.
2. Tracks uniform var usage.
3. Emit exp() in terms of EXP2 instruction.
diff --git a/src/mesa/shader/prog_parameter.h b/src/mesa/shader/prog_parameter.h
index dfb8c39..e8d3e9e 100644
--- a/src/mesa/shader/prog_parameter.h
+++ b/src/mesa/shader/prog_parameter.h
@@ -31,7 +31,7 @@
 #ifndef PROG_PARAMETER_H
 #define PROG_PARAMETER_H
 
-#include "mtypes.h"
+#include "main/mtypes.h"
 #include "prog_statevars.h"
 
 
@@ -48,6 +48,7 @@
    enum register_file Type; /**< PROGRAM_NAMED_PARAM, CONSTANT or STATE_VAR */
    GLenum DataType;         /**< GL_FLOAT, GL_FLOAT_VEC2, etc */
    GLuint Size;             /**< Number of components (1..4) */
+   GLboolean Used;          /**< Helper flag for GLSL uniform tracking */
    /**
     * A sequence of STATE_* tokens and integers to identify GL state.
     */
@@ -112,6 +113,10 @@
 _mesa_add_uniform(struct gl_program_parameter_list *paramList,
                   const char *name, GLuint size, GLenum datatype);
 
+extern void
+_mesa_use_uniform(struct gl_program_parameter_list *paramList,
+                  const char *name);
+
 extern GLint
 _mesa_add_sampler(struct gl_program_parameter_list *paramList,
                   const char *name, GLenum datatype);