cgen(nl, &tmp);
gins(AFUCOMPP, &tmp, &n2);
} else {
- // NOTE(rsc): This is wrong.
- // It's right for comparison but presumably all the
- // other ops have the same problem. We need to
- // figure out what the right solution is, besides
- // tell people to use float64.
+ // TODO(rsc): The moves back and forth to memory
+ // here are for truncating the value to 32 bits.
+ // This handles 32-bit comparison but presumably
+ // all the other ops have the same problem.
+ // We need to figure out what the right general
+ // solution is, besides telling people to use float64.
tempalloc(&t1, types[TFLOAT32]);
tempalloc(&t2, types[TFLOAT32]);
cgen(nr, &t1);
cgen(nl, &t2);
- gmove(&t1, &tmp);
+ gmove(&t2, &tmp);
gins(AFCOMFP, &t1, &tmp);
tempfree(&t2);
tempfree(&t1);