summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2014-03-11 10:25:29 -0400
committerIlia Mirkin <imirkin@alum.mit.edu>2014-03-18 05:56:53 -0400
commit15b1f420d04e2fbff8e1ed4a863239e8ddf602de (patch)
treeb52235c893c64b7e91cca7e91a3378db335d0058
parent1b68009466dd2ac6a8d8827ef47ba9bdf0c58501 (diff)
nv50/ir/gk110: add emit/restart implementations
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp9
1 files changed, 8 insertions, 1 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 aec9b5251a0..754a31daa85 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -1225,7 +1225,14 @@ CodeEmitterGK110::emitEXPORT(const Instruction *i)
void
CodeEmitterGK110::emitOUT(const Instruction *i)
{
- emitNOP(i); // TODO
+ assert(i->src(0).getFile() == FILE_GPR);
+
+ emitForm_21(i, 0x1f0, 0xb70);
+
+ if (i->op == OP_EMIT)
+ code[1] |= 1 << 10;
+ if (i->op == OP_RESTART || i->subOp == NV50_IR_SUBOP_EMIT_RESTART)
+ code[1] |= 1 << 11;
}
void