summary refs log tree commit diff
path: root/live.c
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2017-02-07 22:49:17 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2017-02-08 10:49:55 -0500
commit8799dc30ac472545bc93957c22f070590ff44cb3 (patch)
treefd7aef35ed9eda70aae4b8c6f1216addb4bdc94c /live.c
parentc71f44c5a86f41e65179633160edeb90a9543987 (diff)
downloadroux-8799dc30ac472545bc93957c22f070590ff44cb3.tar.gz
make rsp and rbp globally live
Diffstat (limited to 'live.c')
-rw-r--r--live.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/live.c b/live.c
index be5ec8c..18c9b63 100644
--- a/live.c
+++ b/live.c
@@ -104,13 +104,14 @@ Again:
 
 		memset(phi, 0, f->ntmp * sizeof phi[0]);
 		memset(nlv, 0, sizeof nlv);
+		b->out->t[0] |= RGLOB;
 		bscopy(b->in, b->out);
 		for (t=0; bsiter(b->in, &t); t++) {
 			phifix(t, phi, f->tmp);
 			nlv[KBASE(f->tmp[t].cls)]++;
 		}
 		if (rtype(b->jmp.arg) == RCall) {
-			assert(bscount(b->in) == 0 && nlv[0] == 0 && nlv[1] == 0);
+			assert(bscount(b->in) == NRGlob && nlv[0] == NRGlob && nlv[1] == 0);
 			b->in->t[0] |= retregs(b->jmp.arg, nlv);
 		} else
 			bset(b->jmp.arg, b, nlv, phi, f->tmp);