diff options
| author | 2025-12-28 19:02:39 +0100 | |
|---|---|---|
| committer | 2025-12-28 19:02:39 +0100 | |
| commit | 17b4861e53fd5be2107f3b7fd8bf77f3d2cc15da (patch) | |
| tree | 019743c333bb6001edd9eb8e639163b6236f24f4 /x86_64 | |
| parent | 0378ccf92c3c1896af29900039339a077c8b5502 (diff) | |
backend: start implementing aarch64
Diffstat (limited to 'x86_64')
| -rw-r--r-- | x86_64/isel.c | 16 |
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; |