nv50: fix SGE/SLT when sources need swapping
authorBen Skeggs <skeggsb@gmail.com>
Mon, 9 Jun 2008 06:41:08 +0000 (16:41 +1000)
committerBen Skeggs <skeggsb@gmail.com>
Sun, 29 Jun 2008 05:46:16 +0000 (15:46 +1000)
src/gallium/drivers/nv50/nv50_program.c

index 44914f41b667b0ea9d29a0d51b38e420574f475b..21341619de45516411abd1f6d48467dadb0f1248 100644 (file)
@@ -601,24 +601,17 @@ emit_preex2(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src)
        emit(pc, inst);
 }
 
-/*XXX: inaccurate results.. why? */
-#define ALLOW_SET_SWAP 0
-
 static void
 emit_set(struct nv50_pc *pc, unsigned c_op, struct nv50_reg *dst,
         struct nv50_reg *src0, struct nv50_reg *src1)
 {
        unsigned inst[2] = { 0, 0 };
-#if ALLOW_SET_SWAP
-       unsigned inv_cop[8] = { 0, 6, 2, 4, 3, 5, 1, 7 };
-#endif
+       unsigned inv_cop[8] = { 0, 4, 2, 6, 1, 5, 3, 7 };
        struct nv50_reg *rdst;
 
-#if ALLOW_SET_SWAP
        assert(c_op <= 7);
        if (check_swap_src_0_1(pc, &src0, &src1))
                c_op = inv_cop[c_op];
-#endif
 
        rdst = dst;
        if (dst->type != P_TEMP)