aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/8l
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2013-03-29 00:34:03 -0700
committerKeith Randall <khr@golang.org>2013-03-29 00:34:03 -0700
commit871177df6ac09ebccb793138dc0b9ccd8fca8cec (patch)
tree8eb8e284cdf8e20ebbdb48cfb825dd1e6e20e676 /src/cmd/8l
parent47a54ab2ad7ab29bfdb92f4be282e6c6637578c1 (diff)
downloadgo-871177df6ac09ebccb793138dc0b9ccd8fca8cec.tar.xz
8a/8l: add PCMPEQB and PMOVMSKB to 386.
Used by CL 8056043 for fast string equals. R=bradfitz CC=golang-dev https://golang.org/cl/8102044
Diffstat (limited to 'src/cmd/8l')
-rw-r--r--src/cmd/8l/8.out.h2
-rw-r--r--src/cmd/8l/optab.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/src/cmd/8l/8.out.h b/src/cmd/8l/8.out.h
index d647f28908..cf0bc9feed 100644
--- a/src/cmd/8l/8.out.h
+++ b/src/cmd/8l/8.out.h
@@ -534,10 +534,12 @@ enum as
AORPS,
APADDQ,
APAND,
+ APCMPEQB,
APMAXSW,
APMAXUB,
APMINSW,
APMINUB,
+ APMOVMSKB,
APSADBW,
APSUBB,
APSUBL,
diff --git a/src/cmd/8l/optab.c b/src/cmd/8l/optab.c
index a6ebf063e7..1d9d2f55f3 100644
--- a/src/cmd/8l/optab.c
+++ b/src/cmd/8l/optab.c
@@ -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 },