aboutsummaryrefslogtreecommitdiffhomepage
path: root/aarch64/isel.c
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64/isel.c')
-rw-r--r--aarch64/isel.c6
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: