diff options
| author | 2023-06-13 20:03:46 +0200 | |
|---|---|---|
| committer | 2023-06-13 20:07:48 +0200 | |
| commit | 85530429ac0c5512d51cf52fa07022452791c1c4 (patch) | |
| tree | ee3dfe52ded21fcbb15c3a1dbb71d929274cbdb7 /amd64 | |
| parent | ca85b61809d976164139eed20f063c596f7b9b75 (diff) | |
lowering of structcopy
Diffstat (limited to 'amd64')
| -rw-r--r-- | amd64/isel.c | 4 |
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); |