summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2012-06-14 23:24:36 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2012-06-14 23:25:48 +0200
commitef51ce522bbb0a9bb3e6faa4890049b21f533aed (patch)
treee69e20bafc74e21522b906fd18c19d4c79a07e6d
parentf677954e07c6c1fd59b13622a7420c97d68a6029 (diff)
nv50/ir: handle NEG,ABS modifiers for short RCP encoding
-rw-r--r--src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
index 7542b84d17a..3ea89aefd2a 100644
--- a/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
+++ b/src/gallium/drivers/nv50/codegen/nv50_ir_emit_nv50.cpp
@@ -1239,6 +1239,8 @@ CodeEmitterNV50::emitSFnOp(const Instruction *i, uint8_t subOp)
if (i->encSize == 4) {
assert(i->op == OP_RCP);
+ code[0] |= i->src(0).mod.abs() << 15;
+ code[0] |= i->src(0).mod.neg() << 22;
emitForm_MUL(i);
} else {
code[1] = subOp << 29;