summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium')
-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();