aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2016-02-13 22:06:15 +0100
committerSamuel Pitoiset <[email protected]>2016-02-13 22:06:15 +0100
commitd11266aa06a507d8895bdc1f454a5837131cc1af (patch)
tree76980779ca2a47fbd8a51dfed0d501fdf5496e26
parenta150101125111bfdead2fcf59d5eb3b37c22031a (diff)
nv50/ir: add MEMBAR emission for GM107
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp12
1 files changed, 12 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 dee26225b7e..8fcff37e617 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
@@ -193,6 +193,8 @@ private:
void emitNOP();
void emitKIL();
void emitOUT();
+
+ void emitMEMBAR();
};
/*******************************************************************************
@@ -2627,6 +2629,13 @@ CodeEmitterGM107::emitOUT()
emitGPR (0x00, insn->def(0));
}
+void
+CodeEmitterGM107::emitMEMBAR()
+{
+ emitInsn (0xef980000);
+ emitField(0x08, 2, insn->subOp >> 2);
+}
+
/*******************************************************************************
* assembler front-end
******************************************************************************/
@@ -2926,6 +2935,9 @@ CodeEmitterGM107::emitInstruction(Instruction *i)
case OP_RESTART:
emitOUT();
break;
+ case OP_MEMBAR:
+ emitMEMBAR();
+ break;
default:
assert(!"invalid opcode");
emitNOP();