diff options
-rw-r--r-- | rega.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/rega.c b/rega.c index 0359d2b..dd77a75 100644 --- a/rega.c +++ b/rega.c @@ -359,9 +359,10 @@ doblk(Blk *b, RMap *cur) Mem *m; Ref *ra[4]; - assert(rtype(b->jmp.arg) != RTmp); for (r=0; bsiter(b->out, &r) && r<Tmp0; r++) radd(cur, r, r); + if (rtype(b->jmp.arg) == RTmp) + b->jmp.arg = ralloc(cur, b->jmp.arg.val); curi = &insb[NIns]; for (i1=&b->ins[b->nins]; i1!=b->ins;) { emiti(*--i1); |