summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-10-03 12:18:20 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-10-03 12:18:20 +0200
commit74a557a167533d37ddd551c2d222fe208c5a4302 (patch)
treeeda59d75ef503ff2b7cb5b711d62dac22e696788
parentcde69a78225ee3b8c5e46ddb98ce4bd599d4f355 (diff)
downloadplan9front-74a557a167533d37ddd551c2d222fe208c5a4302.tar.xz
8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers
-rw-r--r--sys/src/cmd/8c/cgen64.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/src/cmd/8c/cgen64.c b/sys/src/cmd/8c/cgen64.c
index 3077dad04..26afadaf0 100644
--- a/sys/src/cmd/8c/cgen64.c
+++ b/sys/src/cmd/8c/cgen64.c
@@ -1575,6 +1575,13 @@ cgen64(Node *n, Node *nn)
cmp = 0;
sh = 0;
+ if(nn != Z && nn->complex >= FNX){
+ reglcgen(&nod1, nn, Z);
+ m = cgen64(n, &nod1);
+ regfree(&nod1);
+ return m;
+ }
+
switch(n->op) {
case ONEG:
d = regpair(nn, n);