aboutsummaryrefslogtreecommitdiffhomepage
path: root/x86_64/isel.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-28 19:02:39 +0100
committerlemon <lsof@mailbox.org>2025-12-28 19:02:39 +0100
commit17b4861e53fd5be2107f3b7fd8bf77f3d2cc15da (patch)
tree019743c333bb6001edd9eb8e639163b6236f24f4 /x86_64/isel.c
parent0378ccf92c3c1896af29900039339a077c8b5502 (diff)
backend: start implementing aarch64
Diffstat (limited to 'x86_64/isel.c')
-rw-r--r--x86_64/isel.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/x86_64/isel.c b/x86_64/isel.c
index 40d8db4..98d66a1 100644
--- a/x86_64/isel.c
+++ b/x86_64/isel.c
@@ -195,19 +195,6 @@ aimm(struct addr *addr, int disp)
}
static bool
-acon(struct addr *addr, union ref r)
-{
- vlong a = addr->disp;
- assert(isintcon(r));
- a += intconval(r);
- if ((int)a == a) {
- addr->disp = a;
- return 1;
- }
- return 0;
-}
-
-static bool
ascale(struct addr *addr, union ref a, union ref b)
{
if (b.t != RICON) return 0;
@@ -268,7 +255,8 @@ aadd(struct addr *addr, struct block *blk, int *curi, union ref r)
ins->skip = 1;
} else goto Ref;
} else if (isnumcon(r)) {
- return acon(addr, r);
+ assert(isintcon(r));
+ return aimm(addr, intconval(r));
} else if (isaddrcon(r,1)) {
if (!addr->base.bits && !isaddrcon(addr->index,1)) addr->base = r;
else return 0;