]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/6a, cmd/6l: add BSWAPL, BSWAPQ
authorRuss Cox <rsc@golang.org>
Tue, 22 May 2012 04:12:58 +0000 (00:12 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 22 May 2012 04:12:58 +0000 (00:12 -0400)
R=ken2
CC=golang-dev
https://golang.org/cl/6209087

src/cmd/6a/lex.c
src/cmd/6l/6.out.h
src/cmd/6l/optab.c

index fc6bd367629827d518ba95c382f5fdd8a3c43462..18a0667573e782bd0b75ca09d5cd9820fa676386 100644 (file)
@@ -340,6 +340,8 @@ struct
        "BSRL",         LTYPE3, ABSRL,
        "BSRQ",         LTYPE3, ABSRQ,
        "BSRW",         LTYPE3, ABSRW,
+       "BSWAPL",       LTYPE1, ABSWAPL,
+       "BSWAPQ",       LTYPE1, ABSWAPQ,
        "BTCL",         LTYPE3, ABTCL,
        "BTCQ",         LTYPE3, ABTCQ,
        "BTCW",         LTYPE3, ABTCW,
index 97f5fbf7bce41508c28ae99d03e70a54ad332cfa..4271944ce4cc3b2c572972b69e64775ded253d82 100644 (file)
@@ -743,6 +743,8 @@ enum        as
        APREFETCHNTA,
        
        AMOVQL,
+       ABSWAPL,
+       ABSWAPQ,
 
        ALAST
 };
index 747e8083390fe83d4b2e3c5f6e98cb5efecb7e4b..3254c46527db096c18ee33e1e0fd87a8e2f10784 100644 (file)
@@ -302,6 +302,11 @@ uchar      ypopl[] =
        Ynone,  Ym,     Zo_m,   2,
        0
 };
+uchar  ybswap[] =
+{
+       Ynone,  Yrl,    Z_rp,   2,
+       0,
+};
 uchar  yscond[] =
 {
        Ynone,  Ymb,    Zo_m,   2,
@@ -641,6 +646,8 @@ Optab optab[] =
        { ABSRL,        yml_rl, Pm, 0xbd },
        { ABSRQ,        yml_rl, Pw, 0x0f,0xbd },
        { ABSRW,        yml_rl, Pq, 0xbd },
+       { ABSWAPL,      ybswap, Px, 0x0f,0xc8 },
+       { ABSWAPQ,      ybswap, Pw, 0x0f,0xc8 },
        { ABTCL,        ybtl,   Pm, 0xba,(07),0xbb },
        { ABTCQ,        ybtl,   Pw, 0x0f,0xba,(07),0x0f,0xbb },
        { ABTCW,        ybtl,   Pq, 0xba,(07),0xbb },