From 85530429ac0c5512d51cf52fa07022452791c1c4 Mon Sep 17 00:00:00 2001 From: lemon Date: Tue, 13 Jun 2023 20:03:46 +0200 Subject: lowering of structcopy --- amd64/isel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'amd64') 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); -- cgit v1.2.3