summaryrefslogtreecommitdiff
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
commitde77e0da5dec845352319c67d3a39206b551f75a (patch)
treea6a398eee95fafb414ef7545ac1e83ce446ed52b /src/cmd/8l
parentaf8051b234b0a09e9a9299eb074393eb228b793a (diff)
downloadgo-de77e0da5dec845352319c67d3a39206b551f75a.tar.gz
8a/8l: add PCMPEQB and PMOVMSKB to 386.
Used by CL 8056043 for fast string equals. R=bradfitz CC=golang-dev https://codereview.appspot.com/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 d647f2890..cf0bc9fee 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 a6ebf063e..1d9d2f55f 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 },