i965: Fix swapped instructions in ir_unop_abs and ir_unop_neg.
authorEric Anholt <eric@anholt.net>
Fri, 27 Aug 2010 20:19:28 +0000 (13:19 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 27 Aug 2010 20:19:28 +0000 (13:19 -0700)
Fixes glsl-fs-neg and 5 other tests.

src/mesa/drivers/dri/i965/brw_fs.cpp

index 336dbd63f3505fc54bd81b66fb234f1edf7090c8..d8369868ade0bf04cb9c77c085992344ae62d534 100644 (file)
@@ -641,12 +641,12 @@ fs_visitor::visit(ir_expression *ir)
       emit(fs_inst(BRW_OPCODE_ADD, this->result, op[0], fs_reg(-1)));
       break;
    case ir_unop_neg:
-      this->result = op[0];
       op[0].negate = ~op[0].negate;
+      this->result = op[0];
       break;
    case ir_unop_abs:
-      this->result = op[0];
       op[0].abs = true;
+      this->result = op[0];
       break;
    case ir_unop_sign:
       temp = fs_reg(this, ir->type);