agx: Assert that we don't overflow registers
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Tue, 7 Mar 2023 03:59:23 +0000 (22:59 -0500)
committerMarge Bot <emma+marge@anholt.net>
Fri, 7 Apr 2023 03:23:03 +0000 (03:23 +0000)
This will become particularly important when we bound to smaller register files.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22353>

src/asahi/compiler/agx_register_allocate.c

index d46ce90..27da7da 100644 (file)
@@ -215,6 +215,7 @@ reserve_live_in(struct ra_ctx *rctx)
 static void
 assign_regs(struct ra_ctx *rctx, agx_index v, unsigned reg)
 {
+   assert(reg < rctx->bound && "must not overflow register file");
    assert(v.type == AGX_INDEX_NORMAL && "only SSA gets registers allocated");
    rctx->ssa_to_reg[v.value] = reg;