From 871177df6ac09ebccb793138dc0b9ccd8fca8cec Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Fri, 29 Mar 2013 00:34:03 -0700 Subject: [PATCH] 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 --- src/cmd/8a/lex.c | 2 ++ src/cmd/8l/8.out.h | 2 ++ src/cmd/8l/optab.c | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c index b8fc2c03ec..a7840f6258 100644 --- a/src/cmd/8a/lex.c +++ b/src/cmd/8a/lex.c @@ -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, 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 }, -- 2.51.0