pan/compiler: Do not assume split 64-bit registers in va_mark_last

va_mark_last currently expects 64-bit registers to always be split in
two, this commit changes it to check first if a 64-bit register is split
or not.

Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40841>
This commit is contained in:
Jakob Sinclair 2026-04-13 11:06:10 +02:00 committed by Marge Bot
parent c9a8dcd63c
commit 245460bda5

View file

@ -178,7 +178,9 @@ va_mark_last(bi_context *ctx)
if (s >= 3)
break;
if (va_src_info(I->op, s).size == VA_SIZE_64) {
/* Only need to unmark split registers. */
if (va_src_info(I->op, s).size == VA_SIZE_64 &&
bi_count_read_registers(I, s) == 1) {
bool both_discard = I->src[s].discard && I->src[s + 1].discard;
I->src[s + 0].discard = both_discard;