From c2ce22ca4641343e9bad446811a882c5c3930419 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 18 Apr 2016 18:48:52 +0200 Subject: [PATCH] gk110/ir: add emission for OP_PERMT Signed-off-by: Samuel Pitoiset Reviewed-by: Ilia Mirkin --- .../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 6fbd04df69b..0968f94a1f1 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); @@ -832,6 +833,14 @@ CodeEmitterGK110::emitBFIND(const Instruction *i) code[1] |= 0x1000; } +void +CodeEmitterGK110::emitPERMT(const Instruction *i) +{ + emitForm_21(i, 0x1e0, 0xb60); + + code[1] |= i->subOp << 19; +} + void CodeEmitterGK110::emitShift(const Instruction *i) { @@ -2143,6 +2152,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.30.2