nv50/ir: Handle TGSI_OPCODE_CLOCK

Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com>
[imirkin: make zero mov non-fixed]
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Boyan Ding
2017-04-04 22:44:46 +08:00
committed by Ilia Mirkin
parent e2e2c69927
commit 6c3dd8f0ed
@@ -3404,6 +3404,13 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn)
mkCvt(OP_CVT, TYPE_U32, dst0[c], TYPE_U8, val0);
}
break;
case TGSI_OPCODE_CLOCK:
// Stick the 32-bit clock into the high dword of the logical result.
if (!tgsi.getDst(0).isMasked(0))
mkOp1(OP_MOV, TYPE_U32, dst0[0], zero);
if (!tgsi.getDst(0).isMasked(1))
mkOp1(OP_RDSV, TYPE_U32, dst0[1], mkSysVal(SV_CLOCK, 0))->fixed = 1;
break;
case TGSI_OPCODE_KILL_IF:
val0 = new_LValue(func, FILE_PREDICATE);
mask = 0;