r300/compiler: remove an unused-but-set variable and simplify the code
authorMarek Olšák <maraeo@gmail.com>
Fri, 15 Jul 2011 18:52:16 +0000 (20:52 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 15 Jul 2011 19:48:28 +0000 (21:48 +0200)
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c

index ac73608839e4dfb66a47d0de5eb0356952804ebe..b24274259f471a6e12cd1f6fa35c30b9b3829fe8 100644 (file)
@@ -560,7 +560,7 @@ static int peephole_add_presub_add(
        struct radeon_compiler * c,
        struct rc_instruction * inst_add)
 {
-       struct rc_src_register * src0 = NULL;
+       unsigned dstmask = inst_add->U.I.DstReg.WriteMask;
        struct rc_src_register * src1 = NULL;
        unsigned int i;
 
@@ -570,18 +570,15 @@ static int peephole_add_presub_add(
        if (inst_add->U.I.SrcReg[0].Swizzle != inst_add->U.I.SrcReg[1].Swizzle)
                return 0;
 
-       /* src0 and src1 can't have absolute values only one can be negative and they must be all negative or all positive. */
+       /* XXX This isn't fully implemented, is it? */
+       /*   src0 and src1 can't have absolute values only one can be negative and they must be all negative or all positive. */
        for (i = 0; i < 2; i++) {
                if (inst_add->U.I.SrcReg[i].Abs)
                        return 0;
-               if ((inst_add->U.I.SrcReg[i].Negate
-                                       & inst_add->U.I.DstReg.WriteMask) ==
-                                               inst_add->U.I.DstReg.WriteMask) {
-                       src0 = &inst_add->U.I.SrcReg[i];
-               } else if (!src1) {
+
+               /* XXX This looks weird, but it's basically what was here before this commit (see git blame): */
+               if ((inst_add->U.I.SrcReg[i].Negate & dstmask) != dstmask && !src1) {
                        src1 = &inst_add->U.I.SrcReg[i];
-               } else {
-                       src0 = &inst_add->U.I.SrcReg[i];
                }
        }