Index: src/cmd/8l/span.c |
=================================================================== |
--- a/src/cmd/8l/span.c |
+++ b/src/cmd/8l/span.c |
@@ -1272,7 +1272,9 @@ |
pp = *p; |
z = p->from.type; |
if(z >= D_BP && z <= D_DI) { |
- if(isax(&p->to)) { |
+ if(isax(&p->to) || p->to.type == D_NONE) { |
+ // We certainly don't want to exchange |
+ // with AX if the op is MUL or DIV. |
*andptr++ = 0x87; /* xchg lhs,bx */ |
asmand(&p->from, reg[D_BX]); |
subreg(&pp, z, D_BX); |