diff options
author | Kai Backman <kaib@golang.org> | 2009-10-24 22:47:25 -0700 |
---|---|---|
committer | Kai Backman <kaib@golang.org> | 2009-10-24 22:47:25 -0700 |
commit | f651e438829b4810f9a797a72295557a3c7d98ef (patch) | |
tree | f357ec7b3f185fa4bd6617e1aa94acdee5a32719 /src/cmd/5g/gsubr.c | |
parent | e1c34fc6e020d6afef4e8282703f1080a935ce80 (diff) | |
download | golang-f651e438829b4810f9a797a72295557a3c7d98ef.tar.gz |
fix conditional branch instructions for unsigned ints and
float. fix sgen endianess in sgen character copying.
go/test: passes 97% (336/345)
R=rsc
http://go/go-review/1015007
Diffstat (limited to 'src/cmd/5g/gsubr.c')
-rw-r--r-- | src/cmd/5g/gsubr.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/src/cmd/5g/gsubr.c b/src/cmd/5g/gsubr.c index 44c7e2670..a34320f6f 100644 --- a/src/cmd/5g/gsubr.c +++ b/src/cmd/5g/gsubr.c @@ -1188,52 +1188,64 @@ optoas(int op, Type *t) case CASE(OLT, TINT16): case CASE(OLT, TINT32): case CASE(OLT, TINT64): + case CASE(OLT, TFLOAT32): + case CASE(OLT, TFLOAT64): + a = ABLT; + break; + case CASE(OLT, TUINT8): case CASE(OLT, TUINT16): case CASE(OLT, TUINT32): case CASE(OLT, TUINT64): - case CASE(OGT, TFLOAT32): - case CASE(OGT, TFLOAT64): - a = ABLT; + a = ABLO; break; case CASE(OLE, TINT8): case CASE(OLE, TINT16): case CASE(OLE, TINT32): case CASE(OLE, TINT64): + case CASE(OLE, TFLOAT32): + case CASE(OLE, TFLOAT64): + a = ABLE; + break; + case CASE(OLE, TUINT8): case CASE(OLE, TUINT16): case CASE(OLE, TUINT32): case CASE(OLE, TUINT64): - case CASE(OGE, TFLOAT32): - case CASE(OGE, TFLOAT64): - a = ABLE; + a = ABLS; break; case CASE(OGT, TINT8): case CASE(OGT, TINT16): case CASE(OGT, TINT32): case CASE(OGT, TINT64): + case CASE(OGT, TFLOAT32): + case CASE(OGT, TFLOAT64): + a = ABGT; + break; + case CASE(OGT, TUINT8): case CASE(OGT, TUINT16): case CASE(OGT, TUINT32): case CASE(OGT, TUINT64): - case CASE(OLT, TFLOAT32): - case CASE(OLT, TFLOAT64): - a = ABGT; + a = ABHI; break; case CASE(OGE, TINT8): case CASE(OGE, TINT16): case CASE(OGE, TINT32): case CASE(OGE, TINT64): + case CASE(OGE, TFLOAT32): + case CASE(OGE, TFLOAT64): + a = ABGE; + break; + case CASE(OGE, TUINT8): case CASE(OGE, TUINT16): case CASE(OGE, TUINT32): case CASE(OGE, TUINT64): - case CASE(OLE, TFLOAT32): - case CASE(OLE, TFLOAT64): - a = ABGE; + a = ABHS; break; case CASE(OCMP, TBOOL): |