]> Cypherpunks repositories - gostls13.git/commitdiff
8a, 8l: add CMPXCHG8B, XADDB, XADDL, XADDW
authorRuss Cox <rsc@golang.org>
Fri, 25 Feb 2011 06:04:29 +0000 (01:04 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 25 Feb 2011 06:04:29 +0000 (01:04 -0500)
R=ken2
CC=golang-dev
https://golang.org/cl/4240041

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

index d5fa959aa84a70b13a874864b190fab9ef6eee64..ca18b69ce673f3f05a589133f2f9d264feb1f710 100644 (file)
@@ -332,6 +332,7 @@ struct
        "CMPSB",        LTYPE0, ACMPSB,
        "CMPSL",        LTYPE0, ACMPSL,
        "CMPSW",        LTYPE0, ACMPSW,
+       "CMPXCHG8B",    LTYPE1, ACMPXCHG8B,
        "CMPXCHGB",     LTYPE3, ACMPXCHGB,
        "CMPXCHGL",     LTYPE3, ACMPXCHGL,
        "CMPXCHGW",     LTYPE3, ACMPXCHGW,
@@ -546,6 +547,9 @@ struct
        "VERW",         LTYPE2, AVERW,
        "WAIT",         LTYPE0, AWAIT,
        "WORD",         LTYPE2, AWORD,
+       "XADDB",        LTYPE3, AXADDB,
+       "XADDL",        LTYPE3, AXADDL,
+       "XADDW",        LTYPE3, AXADDW,
        "XCHGB",        LTYPE3, AXCHGB,
        "XCHGL",        LTYPE3, AXCHGL,
        "XCHGW",        LTYPE3, AXCHGW,
index 0866f05f00ee0351471978d8cb99ae5abbb4f955..03db0016b591dd4578cf11cf1f6c6daf4587af5f 100644 (file)
@@ -392,6 +392,11 @@ enum       as
        ACMPXCHGB,
        ACMPXCHGL,
        ACMPXCHGW,
+       ACMPXCHG8B,
+       
+       AXADDB,
+       AXADDL,
+       AXADDW,
 
        /* conditional move */
        ACMOVLCC,
index fceab785dfee3301c04ca3f554f7ab258ad2903d..1e89a21053842e7b801ad763db70ecea79c91d44 100644 (file)
@@ -702,6 +702,11 @@ Optab optab[] =
        { ACMPXCHGB,    yrb_mb, Pm, 0xb0 },
        { ACMPXCHGL,    yrl_ml, Pm, 0xb1 },
        { ACMPXCHGW,    yrl_ml, Pm, 0xb1 },
+       { ACMPXCHG8B,   yscond, Pm, 0xc7,(01) },
+
+       { AXADDB,       yrb_mb, Pb, 0x0f,0xc0 },
+       { AXADDL,       yrl_ml, Pm, 0xc1 },
+       { AXADDW,       yrl_ml, Pe, 0x0f,0xc1 },
 
        { ACMOVLCC,     yml_rl, Pm, 0x43 },
        { ACMOVLCS,     yml_rl, Pm, 0x42 },