summary refs log tree commit diff
path: root/parse.c
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-20 12:53:42 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-20 12:53:42 -0400
commit84bb28c0422c2d0dea555aeec946e73cf2b818a8 (patch)
treeaeb69859c0d986773f23335c22c07c295975525a /parse.c
parent1258bb75d2941df4b2d56c38d14a97c57722e2e0 (diff)
downloadroux-84bb28c0422c2d0dea555aeec946e73cf2b818a8.tar.gz
support calls with no return
I thought it would be harder (and maybe it is).
My fear was that a call must be always followed by
a parallel move from machine registers (this is an
assumption in both spill and rega).  This however
remains true, because the ABI code generates a
dummy "copy RAX" by accident!
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/parse.c b/parse.c
index 4c3a974..ed88114 100644
--- a/parse.c
+++ b/parse.c
@@ -508,7 +508,7 @@ parseline(PState ps)
 		err("label or } expected");
 	switch (t) {
 	default:
-		if (isstore(t)) {
+		if (isstore(t) || t == Tcall) {
 			/* operations without result */
 			r = R;
 			k = Kw;