diff options
author | Keith Randall <khr@golang.org> | 2013-03-29 00:34:03 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2013-03-29 00:34:03 -0700 |
commit | de77e0da5dec845352319c67d3a39206b551f75a (patch) | |
tree | a6a398eee95fafb414ef7545ac1e83ce446ed52b /src/cmd/8l | |
parent | af8051b234b0a09e9a9299eb074393eb228b793a (diff) | |
download | go-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.h | 2 | ||||
-rw-r--r-- | src/cmd/8l/optab.c | 8 |
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 }, |