gm107/ir: add carry emission to LOP and IADD
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 19 Jan 2016 04:55:19 +0000 (23:55 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 21 Jan 2016 00:37:34 +0000 (19:37 -0500)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp

index 465319af5cec370fee8cb8dbafa58a8eeeb710a0..1fa0eb6da6d6882b9c821b2c5a305e29e87e83f8 100644 (file)
@@ -1554,11 +1554,13 @@ CodeEmitterGM107::emitLOP()
          break;
       }
       emitPRED (0x30);
+      emitX    (0x2b);
       emitField(0x29, 2, lop);
       emitINV  (0x28, insn->src(1));
       emitINV  (0x27, insn->src(0));
    } else {
       emitInsn (0x04000000);
+      emitX    (0x39);
       emitINV  (0x38, insn->src(1));
       emitINV  (0x37, insn->src(0));
       emitField(0x35, 2, lop);
@@ -1626,9 +1628,11 @@ CodeEmitterGM107::emitIADD()
       emitNEG(0x31, insn->src(0));
       emitNEG(0x30, insn->src(1));
       emitCC (0x2f);
+      emitX  (0x2b);
    } else {
       emitInsn(0x1c000000);
       emitSAT (0x36);
+      emitX   (0x35);
       emitCC  (0x34);
       emitIMMD(0x14, 32, insn->src(1));
    }