From b39b82dfbd85c4a69a1b37d477cb859b50cb149a Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 25 Jun 2024 06:29:18 -0400 Subject: [PATCH] ir3: Don't consider r63.x as a GPR We have to be careful here because r63.x is also used to mean "register not assigned yet," but dummy destinations for prefetches will use r63.x and we don't want them to count as GPRs when determining whether to enable early preamble. Part-of: --- src/freedreno/ir3/ir3.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index a45eae03120..dd5e32d6955 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -1369,6 +1369,9 @@ is_reg_gpr(const struct ir3_register *reg) { if ((reg_num(reg) == REG_A0) || (reg->flags & IR3_REG_PREDICATE)) return false; + if (!(reg->flags & (IR3_REG_SSA | IR3_REG_RELATIV)) && + reg->num == INVALID_REG) + return false; return true; }