Shaders must not attempt to write to the register files in the last
three instructions, but that doesn't include the magic registers:
nop ; nop ; thrsw; ldtmu.- *** ERROR ***
nop ; nop
nop ; nop
v2: Simplify validation rules. (Eric Anholt)
v3: Adjust validation even more. (Eric Anholt)
Reviewed-by: Eric Anholt <eric@anholt.net>
fail_instr(state, "RF write after THREND");
}
- if (v3d_qpu_sig_writes_address(devinfo, &inst->sig))
+ if (v3d_qpu_sig_writes_address(devinfo, &inst->sig) &&
+ !inst->sig_magic) {
fail_instr(state, "RF write after THREND");
+ }
/* GFXH-1625: No TMUWT in the last instruction */
if (state->last_thrsw_ip - state->ip == 2 &&