diff options
| author | 2025-12-30 09:53:53 +0100 | |
|---|---|---|
| committer | 2025-12-30 09:53:53 +0100 | |
| commit | 2b6b6b79beba618ab46c353a59a1c90539340021 (patch) | |
| tree | 4200a1a7c81a95ff03e13fc7b6daaafe82f5909f /aarch64/isel.c | |
| parent | 5559e5fc1f6c10d88eb32febc3a36a8fc2502d58 (diff) | |
aarch64 mul/div
Diffstat (limited to 'aarch64/isel.c')
| -rw-r--r-- | aarch64/isel.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/aarch64/isel.c b/aarch64/isel.c index 239d1cd..5a8c67b 100644 --- a/aarch64/isel.c +++ b/aarch64/isel.c @@ -334,6 +334,12 @@ sel(struct function *fn, struct instr *ins, struct block *blk, int *curi) case Oshl: case Osar: case Oslr: fixarg(&ins->r, ins, blk, curi); break; + case Omul: case Odiv: + if (ins->l.t != RTMP) + ins->l = insertinstr(blk, (*curi)++, mkinstr(Ocopy, ins->cls, ins->l)); + if (ins->r.t != RTMP) + ins->r = insertinstr(blk, (*curi)++, mkinstr(Ocopy, ins->cls, ins->r)); + break; case Oequ: case Oneq: case Olth: case Ogth: case Olte: case Ogte: case Oulth: case Ougth: case Oulte: case Ougte: |