summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp
index a65c59e9ec1..a15b43a92e4 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp
@@ -1614,13 +1614,15 @@ CodeEmitterNV50::emitLogicOp(const Instruction *i)
emitForm_IMM(i);
} else {
switch (i->op) {
- case OP_AND: code[1] = 0x04000000; break;
- case OP_OR: code[1] = 0x04004000; break;
- case OP_XOR: code[1] = 0x04008000; break;
+ case OP_AND: code[1] = 0x00000000; break;
+ case OP_OR: code[1] = 0x00004000; break;
+ case OP_XOR: code[1] = 0x00008000; break;
default:
assert(0);
break;
}
+ if (typeSizeof(i->dType) == 4)
+ code[1] |= 0x04000000;
if (i->src(0).mod & Modifier(NV50_IR_MOD_NOT))
code[1] |= 1 << 16;
if (i->src(1).mod & Modifier(NV50_IR_MOD_NOT))