summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-18 14:43:41 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-18 15:15:02 -0400
commitd1c6c305f7244775541c3ba6e0422e9a0bb5d521 (patch)
tree6e00b01aed6d8e57aab67ddc6e054dab81010624 /lisc
parent3f3dce67f442d637a2f933f7fd5accbcf836b9a2 (diff)
downloadroux-d1c6c305f7244775541c3ba6e0422e9a0bb5d521.tar.gz
set eax before call (for variadics...)
Diffstat (limited to 'lisc')
-rw-r--r--lisc/isel.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index 752f457..f6d877c 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -737,6 +737,7 @@ selcall(Fn *fn, Ins *i0, Ins *i1, RAlloc **rap)
 		}
 	}
 	emit(OCall, i1->cls, R, i1->arg[0], CALL(ca));
+	emit(OCopy, Kw, TMP(RAX), getcon((ca >> 8) & 15, fn), R);
 
 	ni = ns = 0;
 	if (ra && aret.inmem)