summary refs log tree commit diff
path: root/load.c
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-03-06 20:31:11 -0800
committerQuentin Carbonneaux <quentin@c9x.me>2019-03-07 19:28:12 +0100
commit52392caecfb4fceeee487dfcc1e327ac140c8f6a (patch)
tree9e38d41a20b7353a5a61f635f878cbbad01ec9ed /load.c
parenta85fe6e2d955b0b34e0d17ca244a978489db4a00 (diff)
downloadroux-52392caecfb4fceeee487dfcc1e327ac140c8f6a.tar.gz
fix in load elimination (vacall is a call)
Diffstat (limited to 'load.c')
-rw-r--r--load.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/load.c b/load.c
index 504b2d8..8e1328e 100644
--- a/load.c
+++ b/load.c
@@ -231,7 +231,7 @@ def(Slice sl, bits msk, Blk *b, Ins *i, Loc *il)
 	while (i > b->ins) {
 		--i;
 		if (killsl(i->to, sl)
-		|| (i->op == Ocall && escapes(sl.ref, curf)))
+		|| ((i->op == Ocall || i->op == Ovacall) && escapes(sl.ref, curf)))
 			goto Load;
 		ld = isload(i->op);
 		if (ld) {