summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2015-12-07 13:26:51 -0500
committerIlia Mirkin <imirkin@alum.mit.edu>2015-12-07 13:30:17 -0500
commitdb072d20867426958153279575dfdc2049b5f595 (patch)
treedaea09ffc2f7c537bd242fbc5b6b18b06f132a7b /src
parent32a6e081c3c301d0d02cb0f3e4f848a143bfa220 (diff)
downloadexternal_mesa3d-db072d20867426958153279575dfdc2049b5f595.zip
external_mesa3d-db072d20867426958153279575dfdc2049b5f595.tar.gz
external_mesa3d-db072d20867426958153279575dfdc2049b5f595.tar.bz2
gk110/ir: fix imul hi emission with limm arg
The elemental demo hits this case. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index 0e52c73..4a63eb1 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -576,8 +576,8 @@ CodeEmitterGK110::emitIMUL(const Instruction *i)
if (isLIMM(i->src(1), TYPE_S32)) {
emitForm_L(i, 0x280, 2, Modifier(0));
- assert(i->subOp != NV50_IR_SUBOP_MUL_HIGH);
-
+ if (i->subOp == NV50_IR_SUBOP_MUL_HIGH)
+ code[1] |= 1 << 24;
if (i->sType == TYPE_S32)
code[1] |= 3 << 25;
} else {