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 9057d43..85b6a65 100644
--- a/ir/regalloc.c
+++ b/ir/regalloc.c
@@ -1139,7 +1139,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 && ins->l.t != RADDR) {
+ if (ins->op == Ocopy && ins->l.t != RADDR && !isaddrcon(ins->l,0)) {
ins->op = store;
ins->r = ins->l;
addstkslotref(temp, alloc->a*8);