Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions sys/src/cmd/8c/cgen64.c
Original file line number Diff line number Diff line change
Expand Up @@ -1564,7 +1564,7 @@ cgen64(Node *n, Node *nn)
{
Type *dt;
uchar *args, (*cp)[VLEN], (**optab)[VLEN];
int li, ri, lri, dr, si, m, op, sh, cmp, cond;
int li, ri, lri, dr, si, m, op, sh, cmp, vcond;
Node *c, *d, *l, *r, *t, *s, nod1, nod2, nod3, nod4, nod5;

if(debug['g']) {
Expand Down Expand Up @@ -2093,40 +2093,40 @@ cgen64(Node *n, Node *nn)
break;
}

cond = 1;
vcond = 1;
optab = cmptab;
switch(op) {
case OEQ:
optab = NEtab;
cond = 0;
vcond = 0;
break;
case ONE:
optab = NEtab;
break;
case OLE:
args = GTargs;
cond = 0;
vcond = 0;
break;
case OGT:
args = GTargs;
break;
case OLS:
args = HIargs;
cond = 0;
vcond = 0;
break;
case OHI:
args = HIargs;
break;
case OLT:
args = GEargs;
cond = 0;
vcond = 0;
break;
case OGE:
args = GEargs;
break;
case OLO:
args = HSargs;
cond = 0;
vcond = 0;
break;
case OHS:
args = HSargs;
Expand All @@ -2138,7 +2138,7 @@ cgen64(Node *n, Node *nn)

switch(lri) {
case IMM(0, 0):
biggen(l, r, Z, cond, optab[T0i], args);
biggen(l, r, Z, vcond, optab[T0i], args);
break;
case IMM(0, 1):
case IMM(1, 0):
Expand All @@ -2147,14 +2147,14 @@ cgen64(Node *n, Node *nn)
diag(l, "bad whatof\n");
break;
case WCONST:
biggen(l, r, Z, cond, optab[T0i], args);
biggen(l, r, Z, vcond, optab[T0i], args);
break;
case WHARD:
reglcgen(&nod2, r, Z);
r = &nod2;
/* fall thru */
case WADDR:
biggen(l, r, Z, cond, optab[T0i], args);
biggen(l, r, Z, vcond, optab[T0i], args);
if(ri == WHARD)
regfree(r);
break;
Expand All @@ -2169,7 +2169,7 @@ cgen64(Node *n, Node *nn)
reglcgen(&nod2, r, Z);
r = &nod2;
}
biggen(l, r, Z, cond, optab[Tii], args);
biggen(l, r, Z, vcond, optab[Tii], args);
if(li == WHARD)
regfree(l);
if(ri == WHARD)
Expand Down
Loading