aboutsummaryrefslogtreecommitdiffhomepage
path: root/aarch64
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-02-28 20:38:55 +0100
committerlemon <lsof@mailbox.org>2026-02-28 20:38:55 +0100
commitf06da11d8524a9eb7fe984171d4462cef8eac2e6 (patch)
tree0050bede4ec0e9939e4a5f98be089a539d5810d2 /aarch64
parent3d1efdcc77de5ce8f3279bd22b0a510a699229ea (diff)
ir: make address ref hash table resizable
Would hit the limit on very large functions (thanks csmith).
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/emit.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/aarch64/emit.c b/aarch64/emit.c
index fdcb866..9fdcd83 100644
--- a/aarch64/emit.c
+++ b/aarch64/emit.c
@@ -54,7 +54,7 @@ mkmemoper(uint msiz, union ref r)
} else if (isaddrcon(r,1)) {
return mkoper(OSYM, .con = r.i,);
} else if (r.t == RADDR) {
- const struct addr *addr = &addrht[r.i];
+ const struct addr *addr = &addrtab.p[r.i];
assert(addr->shift <= 3 && (!addr->disp || !addr->index.bits));
if (isaddrcon(addr->base,0)) {
assert(!addr->index.bits);
@@ -552,7 +552,7 @@ gencopy(uchar **pcode, enum irclass cls, struct block *blk, int curi, struct ope
else if (src.t == OIMM && src.imm == 0)
Xfmov(pcode, cls, dst, REGZR);
else assert(0);
- } else if (isaddrcon(val,0) || (val.t == RADDR && isaddrcon(addrht[val.i].base,0))) {
+ } else if (isaddrcon(val,0) || (val.t == RADDR && isaddrcon(addrtab.p[val.i].base,0))) {
if ((ccopt.pic || (contab.p[val.i].flag & SFUNC)) && !(contab.p[val.i].flag & SLOCAL)) {
Xadrp(pcode, KPTR, dst, src);
Xadd(pcode, KPTR, dst, dst, src);