aboutsummaryrefslogtreecommitdiffhomepage
path: root/amd64
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2023-06-13 20:03:46 +0200
committerlemon <lsof@mailbox.org>2023-06-13 20:07:48 +0200
commit85530429ac0c5512d51cf52fa07022452791c1c4 (patch)
treeee3dfe52ded21fcbb15c3a1dbb71d929274cbdb7 /amd64
parentca85b61809d976164139eed20f063c596f7b9b75 (diff)
lowering of structcopy
Diffstat (limited to 'amd64')
-rw-r--r--amd64/isel.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/amd64/isel.c b/amd64/isel.c
index 469c56d..58cc49a 100644
--- a/amd64/isel.c
+++ b/amd64/isel.c
@@ -240,12 +240,12 @@ sel(struct function *fn, struct instr *ins, struct block *blk, int *curi)
break;
case Oloads1: case Oloadu1: case Oloads2: case Oloadu2:
case Oloads4: case Oloadu4: case Oloadi8: case Oloadf4: case Oloadf8:
- if (ins->l.t != RTMP && ins->l.t != RREG)
+ if (ins->l.t != RTMP && ins->l.t != RREG && ins->l.t != RMORE)
ins->l = insertinstr(blk, (*curi)++, mkinstr(Ocopy, ins->cls, ins->l));
fuseaddr(fn, &ins->l);
break;
case Ostore1: case Ostore2: case Ostore4: case Ostore8:
- if (ins->l.t != RTMP && ins->l.t != RREG)
+ if (ins->l.t != RTMP && ins->l.t != RREG && ins->l.t != RMORE)
ins->l = insertinstr(blk, (*curi)++, mkinstr(Ocopy, ins->cls, ins->l));
fuseaddr(fn, &ins->l);
fixarg(fn, &ins->r, ins, blk, curi);