diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-06-24 19:25:13 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-06-24 19:25:13 +0200 |
commit | 9f6967ed7e12ec3254bc1b3b7ad3e5a41c274e3a (patch) | |
tree | 7560ebad5bb6a015a38d43c62919716e9289e3dc /sys/src/cmd/8c | |
parent | 7d3cc1c55a435bd9e3d37d9bf8a9299ea9e1f87e (diff) |
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.
Diffstat (limited to 'sys/src/cmd/8c')
-rw-r--r-- | sys/src/cmd/8c/cgen64.c | 2 |
1 files changed, 1 insertions, 1 deletions
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); |