]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/asm: remove support for amd64 3DNow! instructions
authorRuss Cox <rsc@golang.org>
Sun, 24 Jan 2016 16:14:46 +0000 (11:14 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 19 Feb 2016 01:35:13 +0000 (01:35 +0000)
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>
src/cmd/asm/internal/arch/arch.go
src/cmd/internal/obj/x86/a.out.go
src/cmd/internal/obj/x86/anames.go
src/cmd/internal/obj/x86/asm6.go

index c14a13cdb13fa1955b6015752142117e94c4575e..f9436cb7f226e2562e500139d3b465a33b3c90d0 100644 (file)
@@ -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
index 12eaa90bf6f50712bb0540a330de5ac1a63385af..28c973b4a83d6a62e517ad2940b9135f01d26019 100644 (file)
@@ -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
index 1875eae41811d07b2db59aa7a29bfa2e3290040a..3c3bc03622e7e826c06dc47ba3a753c8a9d891d4 100644 (file)
@@ -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",
index 4ed1d8790bc6168188bfd3baff815e725061eb12..a06d3097ad55e808357249a2806d72d0b550e76f 100644 (file)
@@ -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