]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/asm: add amd64 HADDPD/HADDPS
authorRuss Cox <rsc@golang.org>
Sun, 24 Jan 2016 20:20:36 +0000 (15:20 -0500)
committerRuss Cox <rsc@golang.org>
Tue, 26 Jan 2016 14:48:08 +0000 (14:48 +0000)
Was part of #13822 but not in the first message, so I missed it.

Fixes #13822 again.

Change-Id: I775004fa8d47b6af293124605521ec396573e267
Reviewed-on: https://go-review.googlesource.com/18900
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/asm/internal/asm/testdata/amd64enc.s
src/cmd/internal/obj/x86/a.out.go
src/cmd/internal/obj/x86/anames.go
src/cmd/internal/obj/x86/asm6.go

index 63ba7cafea1e2f9100e1b95fc0887cfa4cef7aa3..63fdcac27db84068632e6131c9046cdea7bba527 100644 (file)
@@ -1878,39 +1878,39 @@ TEXT asmtest(SB),7,$0
        FXTRACT                                 // d9f4
        FYL2X                                   // d9f1
        FYL2XP1                                 // d9f9
-       //TODO: HADDPD (BX), X2                 // 660f7c13
-       //TODO: HADDPD (R11), X2                // 66410f7c13
-       //TODO: HADDPD X2, X2                   // 660f7cd2
-       //TODO: HADDPD X11, X2                  // 66410f7cd3
-       //TODO: HADDPD (BX), X11                // 66440f7c1b
-       //TODO: HADDPD (R11), X11               // 66450f7c1b
-       //TODO: HADDPD X2, X11                  // 66440f7cda
-       //TODO: HADDPD X11, X11                 // 66450f7cdb
-       //TODO: HADDPS (BX), X2                 // f20f7c13
-       //TODO: HADDPS (R11), X2                // f2410f7c13
-       //TODO: HADDPS X2, X2                   // f20f7cd2
-       //TODO: HADDPS X11, X2                  // f2410f7cd3
-       //TODO: HADDPS (BX), X11                // f2440f7c1b
-       //TODO: HADDPS (R11), X11               // f2450f7c1b
-       //TODO: HADDPS X2, X11                  // f2440f7cda
-       //TODO: HADDPS X11, X11                 // f2450f7cdb
+       HADDPD (BX), X2                         // 660f7c13
+       HADDPD (R11), X2                        // 66410f7c13
+       HADDPD X2, X2                           // 660f7cd2
+       HADDPD X11, X2                          // 66410f7cd3
+       HADDPD (BX), X11                        // 66440f7c1b
+       HADDPD (R11), X11                       // 66450f7c1b
+       HADDPD X2, X11                          // 66440f7cda
+       HADDPD X11, X11                         // 66450f7cdb
+       HADDPS (BX), X2                         // f20f7c13
+       HADDPS (R11), X2                        // f2410f7c13
+       HADDPS X2, X2                           // f20f7cd2
+       HADDPS X11, X2                          // f2410f7cd3
+       HADDPS (BX), X11                        // f2440f7c1b
+       HADDPS (R11), X11                       // f2450f7c1b
+       HADDPS X2, X11                          // f2440f7cda
+       HADDPS X11, X11                         // f2450f7cdb
        HLT                                     // f4
-       //TODO: HSUBPD (BX), X2                 // 660f7d13
-       //TODO: HSUBPD (R11), X2                // 66410f7d13
-       //TODO: HSUBPD X2, X2                   // 660f7dd2
-       //TODO: HSUBPD X11, X2                  // 66410f7dd3
-       //TODO: HSUBPD (BX), X11                // 66440f7d1b
-       //TODO: HSUBPD (R11), X11               // 66450f7d1b
-       //TODO: HSUBPD X2, X11                  // 66440f7dda
-       //TODO: HSUBPD X11, X11                 // 66450f7ddb
-       //TODO: HSUBPS (BX), X2                 // f20f7d13
-       //TODO: HSUBPS (R11), X2                // f2410f7d13
-       //TODO: HSUBPS X2, X2                   // f20f7dd2
-       //TODO: HSUBPS X11, X2                  // f2410f7dd3
-       //TODO: HSUBPS (BX), X11                // f2440f7d1b
-       //TODO: HSUBPS (R11), X11               // f2450f7d1b
-       //TODO: HSUBPS X2, X11                  // f2440f7dda
-       //TODO: HSUBPS X11, X11                 // f2450f7ddb
+       HSUBPD (BX), X2                         // 660f7d13
+       HSUBPD (R11), X2                        // 66410f7d13
+       HSUBPD X2, X2                           // 660f7dd2
+       HSUBPD X11, X2                          // 66410f7dd3
+       HSUBPD (BX), X11                        // 66440f7d1b
+       HSUBPD (R11), X11                       // 66450f7d1b
+       HSUBPD X2, X11                          // 66440f7dda
+       HSUBPD X11, X11                         // 66450f7ddb
+       HSUBPS (BX), X2                         // f20f7d13
+       HSUBPS (R11), X2                        // f2410f7d13
+       HSUBPS X2, X2                           // f20f7dd2
+       HSUBPS X11, X2                          // f2410f7dd3
+       HSUBPS (BX), X11                        // f2440f7d1b
+       HSUBPS (R11), X11                       // f2450f7d1b
+       HSUBPS X2, X11                          // f2440f7dda
+       HSUBPS X11, X11                         // f2450f7ddb
        //TODO: ICEBP                           // f1
        IDIVW (BX)                              // 66f73b
        IDIVW (R11)                             // 6641f73b
index efce9867d5248ba0315c8966aa949937e1270905..12eaa90bf6f50712bb0540a330de5ac1a63385af 100644 (file)
@@ -89,7 +89,11 @@ const (
        ADIVL
        ADIVW
        AENTER
+       AHADDPD
+       AHADDPS
        AHLT
+       AHSUBPD
+       AHSUBPS
        AIDIVB
        AIDIVL
        AIDIVW
index b1c3f00f7c90372dc3f2184f3e11ea5cb5ce5ad0..1875eae41811d07b2db59aa7a29bfa2e3290040a 100644 (file)
@@ -57,7 +57,11 @@ var Anames = []string{
        "DIVL",
        "DIVW",
        "ENTER",
+       "HADDPD",
+       "HADDPS",
        "HLT",
+       "HSUBPD",
+       "HSUBPS",
        "IDIVB",
        "IDIVL",
        "IDIVW",
index fdc25faf98a90caa6f6d9835302c09e3ae7bd084..4ed1d8790bc6168188bfd3baff815e725061eb12 100644 (file)
@@ -1171,6 +1171,10 @@ var optab =
        {AJPC, yjcond, Px, [23]uint8{0x7b, 0x8b}},
        {AJPL, yjcond, Px, [23]uint8{0x79, 0x89}},
        {AJPS, yjcond, Px, [23]uint8{0x7a, 0x8a}},
+       {AHADDPD, yxm, Pq, [23]uint8{0x7c}},
+       {AHADDPS, yxm, Pf2, [23]uint8{0x7c}},
+       {AHSUBPD, yxm, Pq, [23]uint8{0x7d}},
+       {AHSUBPS, yxm, Pf2, [23]uint8{0x7d}},
        {ALAHF, ynone, Px, [23]uint8{0x9f}},
        {ALARL, yml_rl, Pm, [23]uint8{0x02}},
        {ALARW, yml_rl, Pq, [23]uint8{0x02}},