[Mesa-dev] [PATCH 1/7] gk110/ir: add emission for OP_PERMT
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Apr 20 20:25:49 UTC 2016
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
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 5f93df2..c8cb266 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -102,6 +102,7 @@ private:
void emitINSBF(const Instruction *);
void emitEXTBF(const Instruction *);
void emitBFIND(const Instruction *);
+ void emitPERMT(const Instruction *);
void emitShift(const Instruction *);
void emitSFnOp(const Instruction *, uint8_t subOp);
@@ -809,6 +810,14 @@ CodeEmitterGK110::emitBFIND(const Instruction *i)
}
void
+CodeEmitterGK110::emitPERMT(const Instruction *i)
+{
+ emitForm_21(i, 0x1e0, 0xb60);
+
+ code[1] |= i->subOp << 19;
+}
+
+void
CodeEmitterGK110::emitShift(const Instruction *i)
{
if (i->op == OP_SHR) {
@@ -2119,6 +2128,9 @@ CodeEmitterGK110::emitInstruction(Instruction *insn)
case OP_BFIND:
emitBFIND(insn);
break;
+ case OP_PERMT:
+ emitPERMT(insn);
+ break;
case OP_JOIN:
emitNOP(insn);
insn->join = 1;
--
2.8.0
More information about the mesa-dev
mailing list