aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir/regalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ir/regalloc.c')
-rw-r--r--ir/regalloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ir/regalloc.c b/ir/regalloc.c
index cdbd7af..09bc955 100644
--- a/ir/regalloc.c
+++ b/ir/regalloc.c
@@ -1159,7 +1159,7 @@ devirt(struct rega *ra, struct block *blk)
enum irclass cls = insrescls(*ins);
int store = cls2store[cls];
/* t was spilled, gen store */
- if (ins->op == Ocopy && isstoreimm(ins->l)) {
+ if (ins->op == Ocopy && (ins->l.t == RREG || isstoreimm(ins->l))) {
ins->op = store;
ins->r = ins->l;
addstkslotref(temp, alloc->a*8);