From 9f6967ed7e12ec3254bc1b3b7ad3e5a41c274e3a Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 24 Jun 2019 19:25:13 +0200 Subject: 8c: skip 64-bit regpair allocation for OINDEX nodes in cgen64() OINDEX can only return TLONG result on 386 so give it a register instead of a regpair and let gmove() handle the conversion. --- sys/src/cmd/8c/cgen64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/src/cmd/8c/cgen64.c b/sys/src/cmd/8c/cgen64.c index 04c1226e0..7dcccd6c5 100644 --- a/sys/src/cmd/8c/cgen64.c +++ b/sys/src/cmd/8c/cgen64.c @@ -2526,7 +2526,7 @@ twoop: case OCAST: l = n->left; if(typev[l->type->etype]) { - if(!vaddr(l, 1)) { + if(!vaddr(l, 1) && l->op != OINDEX) { // theres no 64 bit indexing if(l->complex + 1 > nn->complex) { d = regpair(Z, l); sugen(l, d, 8); -- cgit v1.2.3