mirror of
https://github.com/golang/go
synced 2024-11-20 04:54:44 -07:00
fix float32 comparison. was doing l op l instead of l op r.
R=ken OCL=31190 CL=31190
This commit is contained in:
parent
86987055a3
commit
6da41be2d3
@ -812,16 +812,17 @@ bgen(Node *n, int true, Prog *to)
|
|||||||
cgen(nl, &tmp);
|
cgen(nl, &tmp);
|
||||||
gins(AFUCOMPP, &tmp, &n2);
|
gins(AFUCOMPP, &tmp, &n2);
|
||||||
} else {
|
} else {
|
||||||
// NOTE(rsc): This is wrong.
|
// TODO(rsc): The moves back and forth to memory
|
||||||
// It's right for comparison but presumably all the
|
// here are for truncating the value to 32 bits.
|
||||||
// other ops have the same problem. We need to
|
// This handles 32-bit comparison but presumably
|
||||||
// figure out what the right solution is, besides
|
// all the other ops have the same problem.
|
||||||
// tell people to use float64.
|
// We need to figure out what the right general
|
||||||
|
// solution is, besides telling people to use float64.
|
||||||
tempalloc(&t1, types[TFLOAT32]);
|
tempalloc(&t1, types[TFLOAT32]);
|
||||||
tempalloc(&t2, types[TFLOAT32]);
|
tempalloc(&t2, types[TFLOAT32]);
|
||||||
cgen(nr, &t1);
|
cgen(nr, &t1);
|
||||||
cgen(nl, &t2);
|
cgen(nl, &t2);
|
||||||
gmove(&t1, &tmp);
|
gmove(&t2, &tmp);
|
||||||
gins(AFCOMFP, &t1, &tmp);
|
gins(AFCOMFP, &t1, &tmp);
|
||||||
tempfree(&t2);
|
tempfree(&t2);
|
||||||
tempfree(&t1);
|
tempfree(&t1);
|
||||||
|
Loading…
Reference in New Issue
Block a user