summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2016-01-18 23:55:19 -0500
committerIlia Mirkin <[email protected]>2016-01-20 19:37:34 -0500
commit73c9ca754487fa5f39122119e1588e13ffcf5f47 (patch)
tree08bc588a8b086276997dbb411aae911e7894c5f0 /src
parent71a489633b1bdd8492e22fe15bb9a57e30fa4ccd (diff)
gm107/ir: add carry emission to LOP and IADD
Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
index 465319af5ce..1fa0eb6da6d 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
@@ -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));
}