diff --git a/.pick_status.json b/.pick_status.json index fab38d721a9..b4fb9752382 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1300,7 +1300,7 @@ "description": "ir3/ra: Make sure we don't pick a preferred reg overflowing the file.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/freedreno/ir3/ir3_ra.c b/src/freedreno/ir3/ir3_ra.c index 871673472fd..a011c8f5a3e 100644 --- a/src/freedreno/ir3/ir3_ra.c +++ b/src/freedreno/ir3/ir3_ra.c @@ -1374,7 +1374,7 @@ get_reg(struct ra_ctx *ctx, struct ra_file *file, struct ir3_register *reg) if (reg->merge_set && reg->merge_set->preferred_reg != (physreg_t)~0) { physreg_t preferred_reg = reg->merge_set->preferred_reg + reg->merge_set_offset; - if (preferred_reg < file_size && + if (preferred_reg + reg_size(reg) <= file_size && preferred_reg % reg_elem_size(reg) == 0 && get_reg_specified(ctx, file, reg, preferred_reg, false)) return preferred_reg;