diff options
author | Rob Clark <[email protected]> | 2014-07-25 09:50:34 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2014-07-25 13:29:28 -0400 |
commit | faaeddb55e090ecc43d56529e99d56962a18ad9d (patch) | |
tree | cd28cee9079df4e2e8af73c3a5c33f6cf9aac229 /src/gallium/drivers/freedreno/a3xx/ir3.h | |
parent | 9f391322a08937c2a01f1777ee9a9ffe3f16c244 (diff) |
freedreno/a3xx/compiler: scheduler vs pred reg
The scheduler also needs to be aware of predicate register (p0) in
addition to address register (a0).
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/a3xx/ir3.h')
-rw-r--r-- | src/gallium/drivers/freedreno/a3xx/ir3.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/a3xx/ir3.h b/src/gallium/drivers/freedreno/a3xx/ir3.h index 0a8e53831c6..9f95abd8f72 100644 --- a/src/gallium/drivers/freedreno/a3xx/ir3.h +++ b/src/gallium/drivers/freedreno/a3xx/ir3.h @@ -368,6 +368,15 @@ static inline bool writes_addr(struct ir3_instruction *instr) return false; } +static inline bool writes_pred(struct ir3_instruction *instr) +{ + if (instr->regs_count > 0) { + struct ir3_register *dst = instr->regs[0]; + return reg_num(dst) == REG_P0; + } + return false; +} + static inline bool reg_gpr(struct ir3_register *r) { if (r->flags & (IR3_REG_CONST | IR3_REG_IMMED | IR3_REG_RELATIV | IR3_REG_SSA | IR3_REG_ADDR)) |