aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/t_aarch64_emit.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-04-09 09:31:25 +0200
committerlemon <lsof@mailbox.org>2026-04-09 09:31:25 +0200
commit2c777a84d54fec374f95034d2b823d92be6e8658 (patch)
tree414ad24bbd315696e3cf37edae00fda3096c2a08 /src/t_aarch64_emit.c
parent015d408ca05f8663850fb284a4de15924c6e5acb (diff)
aarch64 handle more cases of stack relative addressing
Diffstat (limited to 'src/t_aarch64_emit.c')
-rw-r--r--src/t_aarch64_emit.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/t_aarch64_emit.c b/src/t_aarch64_emit.c
index 799b388..ca251f0 100644
--- a/src/t_aarch64_emit.c
+++ b/src/t_aarch64_emit.c
@@ -636,6 +636,10 @@ gencopy(uchar **pcode, enum irclass cls, Block *blk, int curi, Oper dst, Ref val
} else {
Xadr(pcode, KPTR, dst, src);
}
+ } else if (src.t == OMEM) {
+ assert(dst.t == OREG);
+ assert(src.m.mode == AIMMIDX);
+ Xadd(pcode, cls, dst, reg2oper(src.m.base), mkoper(OIMM, .imm = src.m.disp));
} else assert(0);
}