mirror of
https://github.com/golang/go
synced 2024-11-25 00:37:57 -07:00
cmd/asm: remove support for amd64 3DNow! instructions
3DNotAnymore! These only ever existed on AMD (not Intel) processors, and AMD cancelled support for them in August 2010. Change-Id: Ia362259add9d4f5788fd151fb373f91288677407 Reviewed-on: https://go-review.googlesource.com/19611 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
b04f3b06ec
commit
76f272d717
@ -162,8 +162,6 @@ func archX86(linkArch *obj.LinkArch) *Arch {
|
|||||||
instructions["MOVDQ2Q"] = x86.AMOVQ
|
instructions["MOVDQ2Q"] = x86.AMOVQ
|
||||||
instructions["MOVNTDQ"] = x86.AMOVNTO
|
instructions["MOVNTDQ"] = x86.AMOVNTO
|
||||||
instructions["MOVOA"] = x86.AMOVO
|
instructions["MOVOA"] = x86.AMOVO
|
||||||
instructions["PF2ID"] = x86.APF2IL
|
|
||||||
instructions["PI2FD"] = x86.API2FL
|
|
||||||
instructions["PSLLDQ"] = x86.APSLLO
|
instructions["PSLLDQ"] = x86.APSLLO
|
||||||
instructions["PSRLDQ"] = x86.APSRLO
|
instructions["PSRLDQ"] = x86.APSRLO
|
||||||
instructions["PADDD"] = x86.APADDL
|
instructions["PADDD"] = x86.APADDL
|
||||||
|
@ -644,23 +644,6 @@ const (
|
|||||||
APEXTRD
|
APEXTRD
|
||||||
APEXTRQ
|
APEXTRQ
|
||||||
APEXTRW
|
APEXTRW
|
||||||
APFACC
|
|
||||||
APFADD
|
|
||||||
APFCMPEQ
|
|
||||||
APFCMPGE
|
|
||||||
APFCMPGT
|
|
||||||
APFMAX
|
|
||||||
APFMIN
|
|
||||||
APFMUL
|
|
||||||
APFNACC
|
|
||||||
APFPNACC
|
|
||||||
APFRCP
|
|
||||||
APFRCPI2T
|
|
||||||
APFRCPIT1
|
|
||||||
APFRSQIT1
|
|
||||||
APFRSQRT
|
|
||||||
APFSUB
|
|
||||||
APFSUBR
|
|
||||||
APHADDD
|
APHADDD
|
||||||
APHADDSW
|
APHADDSW
|
||||||
APHADDW
|
APHADDW
|
||||||
@ -691,7 +674,6 @@ const (
|
|||||||
APMOVZXWD
|
APMOVZXWD
|
||||||
APMOVZXWQ
|
APMOVZXWQ
|
||||||
APMULDQ
|
APMULDQ
|
||||||
APMULHRW
|
|
||||||
APMULHUW
|
APMULHUW
|
||||||
APMULHW
|
APMULHW
|
||||||
APMULLD
|
APMULLD
|
||||||
@ -722,7 +704,6 @@ const (
|
|||||||
APSUBUSB
|
APSUBUSB
|
||||||
APSUBUSW
|
APSUBUSW
|
||||||
APSUBW
|
APSUBW
|
||||||
APSWAPL
|
|
||||||
APUNPCKHBW
|
APUNPCKHBW
|
||||||
APUNPCKHLQ
|
APUNPCKHLQ
|
||||||
APUNPCKHQDQ
|
APUNPCKHQDQ
|
||||||
@ -761,11 +742,6 @@ const (
|
|||||||
AUNPCKLPS
|
AUNPCKLPS
|
||||||
AXORPD
|
AXORPD
|
||||||
AXORPS
|
AXORPS
|
||||||
|
|
||||||
APF2IW
|
|
||||||
APF2IL
|
|
||||||
API2FW
|
|
||||||
API2FL
|
|
||||||
ARETFW
|
ARETFW
|
||||||
ARETFL
|
ARETFL
|
||||||
ARETFQ
|
ARETFQ
|
||||||
|
@ -593,23 +593,6 @@ var Anames = []string{
|
|||||||
"PEXTRD",
|
"PEXTRD",
|
||||||
"PEXTRQ",
|
"PEXTRQ",
|
||||||
"PEXTRW",
|
"PEXTRW",
|
||||||
"PFACC",
|
|
||||||
"PFADD",
|
|
||||||
"PFCMPEQ",
|
|
||||||
"PFCMPGE",
|
|
||||||
"PFCMPGT",
|
|
||||||
"PFMAX",
|
|
||||||
"PFMIN",
|
|
||||||
"PFMUL",
|
|
||||||
"PFNACC",
|
|
||||||
"PFPNACC",
|
|
||||||
"PFRCP",
|
|
||||||
"PFRCPI2T",
|
|
||||||
"PFRCPIT1",
|
|
||||||
"PFRSQIT1",
|
|
||||||
"PFRSQRT",
|
|
||||||
"PFSUB",
|
|
||||||
"PFSUBR",
|
|
||||||
"PHADDD",
|
"PHADDD",
|
||||||
"PHADDSW",
|
"PHADDSW",
|
||||||
"PHADDW",
|
"PHADDW",
|
||||||
@ -640,7 +623,6 @@ var Anames = []string{
|
|||||||
"PMOVZXWD",
|
"PMOVZXWD",
|
||||||
"PMOVZXWQ",
|
"PMOVZXWQ",
|
||||||
"PMULDQ",
|
"PMULDQ",
|
||||||
"PMULHRW",
|
|
||||||
"PMULHUW",
|
"PMULHUW",
|
||||||
"PMULHW",
|
"PMULHW",
|
||||||
"PMULLD",
|
"PMULLD",
|
||||||
@ -671,7 +653,6 @@ var Anames = []string{
|
|||||||
"PSUBUSB",
|
"PSUBUSB",
|
||||||
"PSUBUSW",
|
"PSUBUSW",
|
||||||
"PSUBW",
|
"PSUBW",
|
||||||
"PSWAPL",
|
|
||||||
"PUNPCKHBW",
|
"PUNPCKHBW",
|
||||||
"PUNPCKHLQ",
|
"PUNPCKHLQ",
|
||||||
"PUNPCKHQDQ",
|
"PUNPCKHQDQ",
|
||||||
@ -710,10 +691,6 @@ var Anames = []string{
|
|||||||
"UNPCKLPS",
|
"UNPCKLPS",
|
||||||
"XORPD",
|
"XORPD",
|
||||||
"XORPS",
|
"XORPS",
|
||||||
"PF2IW",
|
|
||||||
"PF2IL",
|
|
||||||
"PI2FW",
|
|
||||||
"PI2FL",
|
|
||||||
"RETFW",
|
"RETFW",
|
||||||
"RETFL",
|
"RETFL",
|
||||||
"RETFQ",
|
"RETFQ",
|
||||||
|
@ -184,7 +184,6 @@ const (
|
|||||||
Zm2_r
|
Zm2_r
|
||||||
Zm_r_xm
|
Zm_r_xm
|
||||||
Zm_r_i_xm
|
Zm_r_i_xm
|
||||||
Zm_r_3d
|
|
||||||
Zm_r_xm_nr
|
Zm_r_xm_nr
|
||||||
Zr_m_xm_nr
|
Zr_m_xm_nr
|
||||||
Zibm_r /* mmx1,mmx2/mem64,imm8 */
|
Zibm_r /* mmx1,mmx2/mem64,imm8 */
|
||||||
@ -753,10 +752,6 @@ var yxrrl = []ytab{
|
|||||||
{Yxr, Ynone, Yrl, Zm_r, 1},
|
{Yxr, Ynone, Yrl, Zm_r, 1},
|
||||||
}
|
}
|
||||||
|
|
||||||
var ymfp = []ytab{
|
|
||||||
{Ymm, Ynone, Ymr, Zm_r_3d, 1},
|
|
||||||
}
|
|
||||||
|
|
||||||
var ymrxr = []ytab{
|
var ymrxr = []ytab{
|
||||||
{Ymr, Ynone, Yxr, Zm_r, 1},
|
{Ymr, Ynone, Yxr, Zm_r, 1},
|
||||||
{Yxm, Ynone, Yxr, Zm_r_xm, 1},
|
{Yxm, Ynone, Yxr, Zm_r_xm, 1},
|
||||||
@ -1085,7 +1080,6 @@ var optab =
|
|||||||
{ACVTPD2PS, yxm, Pe, [23]uint8{0x5a}},
|
{ACVTPD2PS, yxm, Pe, [23]uint8{0x5a}},
|
||||||
{ACVTPS2PL, yxcvm1, Px, [23]uint8{Pe, 0x5b, Pm, 0x2d}},
|
{ACVTPS2PL, yxcvm1, Px, [23]uint8{Pe, 0x5b, Pm, 0x2d}},
|
||||||
{ACVTPS2PD, yxm, Pm, [23]uint8{0x5a}},
|
{ACVTPS2PD, yxm, Pm, [23]uint8{0x5a}},
|
||||||
{API2FW, ymfp, Px, [23]uint8{0x0c}},
|
|
||||||
{ACVTSD2SL, yxcvfl, Pf2, [23]uint8{0x2d}},
|
{ACVTSD2SL, yxcvfl, Pf2, [23]uint8{0x2d}},
|
||||||
{ACVTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2d}},
|
{ACVTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2d}},
|
||||||
{ACVTSD2SS, yxm, Pf2, [23]uint8{0x5a}},
|
{ACVTSD2SS, yxm, Pf2, [23]uint8{0x5a}},
|
||||||
@ -1303,26 +1297,6 @@ var optab =
|
|||||||
{APEXTRB, yextr, Pq, [23]uint8{0x3a, 0x14, 00}},
|
{APEXTRB, yextr, Pq, [23]uint8{0x3a, 0x14, 00}},
|
||||||
{APEXTRD, yextr, Pq, [23]uint8{0x3a, 0x16, 00}},
|
{APEXTRD, yextr, Pq, [23]uint8{0x3a, 0x16, 00}},
|
||||||
{APEXTRQ, yextr, Pq3, [23]uint8{0x3a, 0x16, 00}},
|
{APEXTRQ, yextr, Pq3, [23]uint8{0x3a, 0x16, 00}},
|
||||||
{APF2IL, ymfp, Px, [23]uint8{0x1d}},
|
|
||||||
{APF2IW, ymfp, Px, [23]uint8{0x1c}},
|
|
||||||
{API2FL, ymfp, Px, [23]uint8{0x0d}},
|
|
||||||
{APFACC, ymfp, Px, [23]uint8{0xae}},
|
|
||||||
{APFADD, ymfp, Px, [23]uint8{0x9e}},
|
|
||||||
{APFCMPEQ, ymfp, Px, [23]uint8{0xb0}},
|
|
||||||
{APFCMPGE, ymfp, Px, [23]uint8{0x90}},
|
|
||||||
{APFCMPGT, ymfp, Px, [23]uint8{0xa0}},
|
|
||||||
{APFMAX, ymfp, Px, [23]uint8{0xa4}},
|
|
||||||
{APFMIN, ymfp, Px, [23]uint8{0x94}},
|
|
||||||
{APFMUL, ymfp, Px, [23]uint8{0xb4}},
|
|
||||||
{APFNACC, ymfp, Px, [23]uint8{0x8a}},
|
|
||||||
{APFPNACC, ymfp, Px, [23]uint8{0x8e}},
|
|
||||||
{APFRCP, ymfp, Px, [23]uint8{0x96}},
|
|
||||||
{APFRCPIT1, ymfp, Px, [23]uint8{0xa6}},
|
|
||||||
{APFRCPI2T, ymfp, Px, [23]uint8{0xb6}},
|
|
||||||
{APFRSQIT1, ymfp, Px, [23]uint8{0xa7}},
|
|
||||||
{APFRSQRT, ymfp, Px, [23]uint8{0x97}},
|
|
||||||
{APFSUB, ymfp, Px, [23]uint8{0x9a}},
|
|
||||||
{APFSUBR, ymfp, Px, [23]uint8{0xaa}},
|
|
||||||
{APHADDD, ymmxmm0f38, Px, [23]uint8{0x0F, 0x38, 0x02, 0, 0x66, 0x0F, 0x38, 0x02, 0}},
|
{APHADDD, ymmxmm0f38, Px, [23]uint8{0x0F, 0x38, 0x02, 0, 0x66, 0x0F, 0x38, 0x02, 0}},
|
||||||
{APHADDSW, yxm_q4, Pq4, [23]uint8{0x03}},
|
{APHADDSW, yxm_q4, Pq4, [23]uint8{0x03}},
|
||||||
{APHADDW, yxm_q4, Pq4, [23]uint8{0x01}},
|
{APHADDW, yxm_q4, Pq4, [23]uint8{0x01}},
|
||||||
@ -1353,7 +1327,6 @@ var optab =
|
|||||||
{APMOVZXWD, yxm_q4, Pq4, [23]uint8{0x33}},
|
{APMOVZXWD, yxm_q4, Pq4, [23]uint8{0x33}},
|
||||||
{APMOVZXWQ, yxm_q4, Pq4, [23]uint8{0x34}},
|
{APMOVZXWQ, yxm_q4, Pq4, [23]uint8{0x34}},
|
||||||
{APMULDQ, yxm_q4, Pq4, [23]uint8{0x28}},
|
{APMULDQ, yxm_q4, Pq4, [23]uint8{0x28}},
|
||||||
{APMULHRW, ymfp, Px, [23]uint8{0xb7}},
|
|
||||||
{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
|
{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
|
||||||
{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
|
{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
|
||||||
{APMULLD, yxm_q4, Pq4, [23]uint8{0x40}},
|
{APMULLD, yxm_q4, Pq4, [23]uint8{0x40}},
|
||||||
@ -1395,7 +1368,6 @@ var optab =
|
|||||||
{APSUBUSB, yxm, Pe, [23]uint8{0xd8}},
|
{APSUBUSB, yxm, Pe, [23]uint8{0xd8}},
|
||||||
{APSUBUSW, yxm, Pe, [23]uint8{0xd9}},
|
{APSUBUSW, yxm, Pe, [23]uint8{0xd9}},
|
||||||
{APSUBW, yxm, Pe, [23]uint8{0xf9}},
|
{APSUBW, yxm, Pe, [23]uint8{0xf9}},
|
||||||
{APSWAPL, ymfp, Px, [23]uint8{0xbb}},
|
|
||||||
{APUNPCKHBW, ymm, Py1, [23]uint8{0x68, Pe, 0x68}},
|
{APUNPCKHBW, ymm, Py1, [23]uint8{0x68, Pe, 0x68}},
|
||||||
{APUNPCKHLQ, ymm, Py1, [23]uint8{0x6a, Pe, 0x6a}},
|
{APUNPCKHLQ, ymm, Py1, [23]uint8{0x6a, Pe, 0x6a}},
|
||||||
{APUNPCKHQDQ, yxm, Pe, [23]uint8{0x6d}},
|
{APUNPCKHQDQ, yxm, Pe, [23]uint8{0x6d}},
|
||||||
@ -3533,15 +3505,6 @@ func doasm(ctxt *obj.Link, p *obj.Prog) {
|
|||||||
ctxt.Andptr[0] = byte(p.To.Offset)
|
ctxt.Andptr[0] = byte(p.To.Offset)
|
||||||
ctxt.Andptr = ctxt.Andptr[1:]
|
ctxt.Andptr = ctxt.Andptr[1:]
|
||||||
|
|
||||||
case Zm_r_3d:
|
|
||||||
ctxt.Andptr[0] = 0x0f
|
|
||||||
ctxt.Andptr = ctxt.Andptr[1:]
|
|
||||||
ctxt.Andptr[0] = 0x0f
|
|
||||||
ctxt.Andptr = ctxt.Andptr[1:]
|
|
||||||
asmand(ctxt, p, &p.From, &p.To)
|
|
||||||
ctxt.Andptr[0] = byte(op)
|
|
||||||
ctxt.Andptr = ctxt.Andptr[1:]
|
|
||||||
|
|
||||||
case Zibm_r, Zibr_m:
|
case Zibm_r, Zibr_m:
|
||||||
for {
|
for {
|
||||||
tmp1 := z
|
tmp1 := z
|
||||||
|
Loading…
Reference in New Issue
Block a user