Commit 76f272d7 authored by Russ Cox's avatar Russ Cox

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/19611Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent b04f3b06
......@@ -162,8 +162,6 @@ func archX86(linkArch *obj.LinkArch) *Arch {
instructions["MOVDQ2Q"] = x86.AMOVQ
instructions["MOVNTDQ"] = x86.AMOVNTO
instructions["MOVOA"] = x86.AMOVO
instructions["PF2ID"] = x86.APF2IL
instructions["PI2FD"] = x86.API2FL
instructions["PSLLDQ"] = x86.APSLLO
instructions["PSRLDQ"] = x86.APSRLO
instructions["PADDD"] = x86.APADDL
......
......@@ -644,23 +644,6 @@ const (
APEXTRD
APEXTRQ
APEXTRW
APFACC
APFADD
APFCMPEQ
APFCMPGE
APFCMPGT
APFMAX
APFMIN
APFMUL
APFNACC
APFPNACC
APFRCP
APFRCPI2T
APFRCPIT1
APFRSQIT1
APFRSQRT
APFSUB
APFSUBR
APHADDD
APHADDSW
APHADDW
......@@ -691,7 +674,6 @@ const (
APMOVZXWD
APMOVZXWQ
APMULDQ
APMULHRW
APMULHUW
APMULHW
APMULLD
......@@ -722,7 +704,6 @@ const (
APSUBUSB
APSUBUSW
APSUBW
APSWAPL
APUNPCKHBW
APUNPCKHLQ
APUNPCKHQDQ
......@@ -761,11 +742,6 @@ const (
AUNPCKLPS
AXORPD
AXORPS
APF2IW
APF2IL
API2FW
API2FL
ARETFW
ARETFL
ARETFQ
......
......@@ -593,23 +593,6 @@ var Anames = []string{
"PEXTRD",
"PEXTRQ",
"PEXTRW",
"PFACC",
"PFADD",
"PFCMPEQ",
"PFCMPGE",
"PFCMPGT",
"PFMAX",
"PFMIN",
"PFMUL",
"PFNACC",
"PFPNACC",
"PFRCP",
"PFRCPI2T",
"PFRCPIT1",
"PFRSQIT1",
"PFRSQRT",
"PFSUB",
"PFSUBR",
"PHADDD",
"PHADDSW",
"PHADDW",
......@@ -640,7 +623,6 @@ var Anames = []string{
"PMOVZXWD",
"PMOVZXWQ",
"PMULDQ",
"PMULHRW",
"PMULHUW",
"PMULHW",
"PMULLD",
......@@ -671,7 +653,6 @@ var Anames = []string{
"PSUBUSB",
"PSUBUSW",
"PSUBW",
"PSWAPL",
"PUNPCKHBW",
"PUNPCKHLQ",
"PUNPCKHQDQ",
......@@ -710,10 +691,6 @@ var Anames = []string{
"UNPCKLPS",
"XORPD",
"XORPS",
"PF2IW",
"PF2IL",
"PI2FW",
"PI2FL",
"RETFW",
"RETFL",
"RETFQ",
......
......@@ -184,7 +184,6 @@ const (
Zm2_r
Zm_r_xm
Zm_r_i_xm
Zm_r_3d
Zm_r_xm_nr
Zr_m_xm_nr
Zibm_r /* mmx1,mmx2/mem64,imm8 */
......@@ -753,10 +752,6 @@ var yxrrl = []ytab{
{Yxr, Ynone, Yrl, Zm_r, 1},
}
var ymfp = []ytab{
{Ymm, Ynone, Ymr, Zm_r_3d, 1},
}
var ymrxr = []ytab{
{Ymr, Ynone, Yxr, Zm_r, 1},
{Yxm, Ynone, Yxr, Zm_r_xm, 1},
......@@ -1085,7 +1080,6 @@ var optab =
{ACVTPD2PS, yxm, Pe, [23]uint8{0x5a}},
{ACVTPS2PL, yxcvm1, Px, [23]uint8{Pe, 0x5b, Pm, 0x2d}},
{ACVTPS2PD, yxm, Pm, [23]uint8{0x5a}},
{API2FW, ymfp, Px, [23]uint8{0x0c}},
{ACVTSD2SL, yxcvfl, Pf2, [23]uint8{0x2d}},
{ACVTSD2SQ, yxcvfq, Pw, [23]uint8{Pf2, 0x2d}},
{ACVTSD2SS, yxm, Pf2, [23]uint8{0x5a}},
......@@ -1303,26 +1297,6 @@ var optab =
{APEXTRB, yextr, Pq, [23]uint8{0x3a, 0x14, 00}},
{APEXTRD, yextr, Pq, [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}},
{APHADDSW, yxm_q4, Pq4, [23]uint8{0x03}},
{APHADDW, yxm_q4, Pq4, [23]uint8{0x01}},
......@@ -1353,7 +1327,6 @@ var optab =
{APMOVZXWD, yxm_q4, Pq4, [23]uint8{0x33}},
{APMOVZXWQ, yxm_q4, Pq4, [23]uint8{0x34}},
{APMULDQ, yxm_q4, Pq4, [23]uint8{0x28}},
{APMULHRW, ymfp, Px, [23]uint8{0xb7}},
{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
{APMULLD, yxm_q4, Pq4, [23]uint8{0x40}},
......@@ -1395,7 +1368,6 @@ var optab =
{APSUBUSB, yxm, Pe, [23]uint8{0xd8}},
{APSUBUSW, yxm, Pe, [23]uint8{0xd9}},
{APSUBW, yxm, Pe, [23]uint8{0xf9}},
{APSWAPL, ymfp, Px, [23]uint8{0xbb}},
{APUNPCKHBW, ymm, Py1, [23]uint8{0x68, Pe, 0x68}},
{APUNPCKHLQ, ymm, Py1, [23]uint8{0x6a, Pe, 0x6a}},
{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 = 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:
for {
tmp1 := z
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment