summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-17 14:43:50 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-17 14:43:50 -0400
commit5e388fffbc87d05d53e10517d5ba1c6350e2c01a (patch)
tree832b92ebb560404d43ab7b87295e2ded48efc9a4
parent240cfcd5cdda9301457867f9d26edcd0cf272b24 (diff)
downloadroux-5e388fffbc87d05d53e10517d5ba1c6350e2c01a.tar.gz
on the way to clean use counts
-rw-r--r--lisc/isel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index ef9cbb7..51a0aa0 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -447,6 +447,7 @@ selret(Blk *b, Fn *fn)
 		if (a.inmem) {
 			assert(rtype(fn->retr) == RTmp);
 			emit(OCopy, Kl, TMP(RAX), fn->retr, R);
+			chuse(fn->retr, +1, fn);
 			blit(fn->retr, 0, r0, a.size, fn);
 		} else {
 			nr[0] = nr[1] = 0;
@@ -458,6 +459,7 @@ selret(Blk *b, Fn *fn)
 				r = newtmp("abi", Kl, fn);
 				emit(OLoad, Kl, reg[1], r, R);
 				emit(OAdd, Kl, r, r0, getcon(8, fn));
+				chuse(r0, +1, fn);
 			}
 			emit(OLoad, Kl, reg[0], r0, R);
 		}