summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--rega.c3
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);