]> Cypherpunks repositories - gostls13.git/commitdiff
8a/8l: add PCMPEQB and PMOVMSKB to 386.
authorKeith Randall <khr@golang.org>
Fri, 29 Mar 2013 07:34:03 +0000 (00:34 -0700)
committerKeith Randall <khr@golang.org>
Fri, 29 Mar 2013 07:34:03 +0000 (00:34 -0700)
Used by CL 8056043 for fast string equals.

R=bradfitz
CC=golang-dev
https://golang.org/cl/8102044

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

index b8fc2c03ec577c9b03c9b2e2688d124c79bbae2c..a7840f6258a54b37400f8f0e121760a132be447a 100644 (file)
@@ -760,10 +760,12 @@ struct
        "ORPS",         LTYPE3, AORPS,
        "PADDQ",        LTYPE3, APADDQ,
        "PAND",         LTYPE3, APAND,
+       "PCMPEQB",      LTYPE3, APCMPEQB,
        "PMAXSW",       LTYPE3, APMAXSW,
        "PMAXUB",       LTYPE3, APMAXUB,
        "PMINSW",       LTYPE3, APMINSW,
        "PMINUB",       LTYPE3, APMINUB,
+       "PMOVMSKB",     LTYPE3, APMOVMSKB,
        "PSADBW",       LTYPE3, APSADBW,
        "PSHUFB",       LTYPE3, APSHUFB,
        "PSUBB",        LTYPE3, APSUBB,
index d647f28908ee84d50d79e36ad5e027e27eefd7bf..cf0bc9feedf00c3ff15332fd95d6e776df421328 100644 (file)
@@ -534,10 +534,12 @@ enum      as
        AORPS,
        APADDQ,
        APAND,
+       APCMPEQB,
        APMAXSW,
        APMAXUB,
        APMINSW,
        APMINUB,
+       APMOVMSKB,
        APSADBW,
        APSUBB,
        APSUBL,
index a6ebf063e7cfb6cf1a4e41078c02d77368096bab..1d9d2f55f377ea40037e22744546f78ec9ec9d27 100644 (file)
@@ -364,6 +364,12 @@ uchar      ysvrs[] =
        Ym,     Ynone,  Zm_o,   2,
        0
 };
+uchar  ymskb[] =
+{
+       Yxr,    Yrl,    Zm_r_xm,        2,
+       Ymr,    Yrl,    Zm_r_xm,        1,
+       0
+};
 uchar  yxm[] = 
 {
        Yxm,    Yxr,    Zm_r_xm,        1,
@@ -950,10 +956,12 @@ Optab optab[] =
        { AORPS,        yxm,    Pm, 0x56 },
        { APADDQ,       yxm,    Pe, 0xd4 },
        { APAND,        yxm,    Pe, 0xdb },
+       { APCMPEQB,     yxmq,   Pe ,0x74 },
        { APMAXSW,      yxm,    Pe, 0xee },
        { APMAXUB,      yxm,    Pe, 0xde },
        { APMINSW,      yxm,    Pe, 0xea },
        { APMINUB,      yxm,    Pe, 0xda },
+       { APMOVMSKB,    ymskb,  Px, Pe,0xd7,0xd7 },
        { APSADBW,      yxm,    Pq, 0xf6 },
        { APSUBB,       yxm,    Pe, 0xf8 },
        { APSUBL,       yxm,    Pe, 0xfa },