diff options
| author | Ken Thompson <ken@golang.org> | 2008-06-16 17:04:39 -0700 |
|---|---|---|
| committer | Ken Thompson <ken@golang.org> | 2008-06-16 17:04:39 -0700 |
| commit | 3f2d542817717400e28df072fa2ac20d648ad5be (patch) | |
| tree | 9626cafed702e80a9df221b73945c7dc8fd785e8 /src | |
| parent | 88a3371a91ac01fb8bcc8083c0f32300514846c3 (diff) | |
| download | go-3f2d542817717400e28df072fa2ac20d648ad5be.tar.xz | |
added and, or, xor opcodes
SVN=123031
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/6g/gsubr.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/cmd/6g/gsubr.c b/src/cmd/6g/gsubr.c index 4aa5ef47a4..2c750957b0 100644 --- a/src/cmd/6g/gsubr.c +++ b/src/cmd/6g/gsubr.c @@ -1360,6 +1360,72 @@ optoas(int op, Type *t) a = ANEGQ; break; + case CASE(OAND, TINT8): + case CASE(OAND, TUINT8): + a = AANDB; + break; + + case CASE(OAND, TINT16): + case CASE(OAND, TUINT16): + a = AANDW; + break; + + case CASE(OAND, TINT32): + case CASE(OAND, TUINT32): + case CASE(OAND, TPTR32): + a = AANDL; + break; + + case CASE(OAND, TINT64): + case CASE(OAND, TUINT64): + case CASE(OAND, TPTR64): + a = AANDQ; + break; + + case CASE(OOR, TINT8): + case CASE(OOR, TUINT8): + a = AORB; + break; + + case CASE(OOR, TINT16): + case CASE(OOR, TUINT16): + a = AORW; + break; + + case CASE(OOR, TINT32): + case CASE(OOR, TUINT32): + case CASE(OOR, TPTR32): + a = AORL; + break; + + case CASE(OOR, TINT64): + case CASE(OOR, TUINT64): + case CASE(OOR, TPTR64): + a = AORQ; + break; + + case CASE(OXOR, TINT8): + case CASE(OXOR, TUINT8): + a = AXORB; + break; + + case CASE(OXOR, TINT16): + case CASE(OXOR, TUINT16): + a = AXORW; + break; + + case CASE(OXOR, TINT32): + case CASE(OXOR, TUINT32): + case CASE(OXOR, TPTR32): + a = AXORL; + break; + + case CASE(OXOR, TINT64): + case CASE(OXOR, TUINT64): + case CASE(OXOR, TPTR64): + a = AXORQ; + break; + case CASE(OLSH, TINT8): case CASE(OLSH, TUINT8): a = ASHLB; |
