mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-19 01:40:43 +01:00
nv50: cannot kill branch if immediate is used
The immediate's bits eat the condition bits.
This commit is contained in:
parent
b3425bc360
commit
616ddc8dfa
1 changed files with 3 additions and 0 deletions
|
|
@ -453,6 +453,7 @@ static INLINE void
|
|||
set_pred(struct nv50_pc *pc, unsigned pred, unsigned idx,
|
||||
struct nv50_program_exec *e)
|
||||
{
|
||||
assert(!is_immd(e));
|
||||
set_long(pc, e);
|
||||
e->inst[1] &= ~((0x1f << 7) | (0x3 << 12));
|
||||
e->inst[1] |= (pred << 7) | (idx << 12);
|
||||
|
|
@ -2118,6 +2119,8 @@ nv50_kill_branch(struct nv50_pc *pc)
|
|||
|
||||
if (pc->if_insn[lvl]->next != pc->p->exec_tail)
|
||||
return FALSE;
|
||||
if (is_immd(pc->p->exec_tail))
|
||||
return FALSE;
|
||||
|
||||
/* if ccode == 'true', the BRA is from an ELSE and the predicate
|
||||
* reg may no longer be valid, since we currently always use $p0
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue