when negating scalar src args, use NEGATE_XYZW, not NEGATE_X
This makes things easier on the back-end when generating GPU code.
cherry-picked from gallium-0.1
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c
index 1a3d232..c55f2aa 100644
--- a/src/mesa/shader/arbprogparse.c
+++ b/src/mesa/shader/arbprogparse.c
@@ -2598,7 +2598,7 @@
GLboolean isRelOffset;
/* Grab the sign */
- negate = (parse_sign (inst) == -1) ? 0xf : 0x0;
+ negate = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
/* And the src reg */
if (parse_src_reg(ctx, inst, vc_head, program, &file, &index, &isRelOffset))
@@ -2655,7 +2655,7 @@
GLboolean IsRelOffset;
/* Grab the sign */
- Negate = (parse_sign (inst) == -1) ? 0x1 : 0x0;
+ Negate = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
/* And the src reg */
if (parse_src_reg (ctx, inst, vc_head, Program, &File, &Index, &IsRelOffset))
@@ -3143,7 +3143,7 @@
GLboolean isRelOffset;
/* Grab the sign */
- negateMask = (parse_sign (inst) == -1) ? 0xf : 0x0;
+ negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
/* And the src reg */
if (parse_src_reg (ctx, inst, vc_head, program, &file, &index, &isRelOffset))
@@ -3170,12 +3170,12 @@
{
enum register_file File;
GLint Index;
- GLubyte Negate;
+ GLubyte negateMask;
GLubyte Swizzle[4];
GLboolean IsRelOffset;
/* Grab the sign */
- Negate = (parse_sign (inst) == -1) ? 0x1 : 0x0;
+ negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
/* And the src reg */
if (parse_src_reg (ctx, inst, vc_head, Program, &File, &Index, &IsRelOffset))
@@ -3187,7 +3187,7 @@
reg->File = File;
reg->Index = Index;
reg->Swizzle = (Swizzle[0] << 0);
- reg->NegateBase = Negate;
+ reg->NegateBase = negateMask;
reg->RelAddr = IsRelOffset;
return 0;
}