]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj/x86: add ADDSUBPS/PD
authorDamien Lespiau <damien.lespiau@intel.com>
Tue, 9 May 2017 05:44:25 +0000 (06:44 +0100)
committerIlya Tocar <ilya.tocar@intel.com>
Mon, 18 Sep 2017 15:06:05 +0000 (15:06 +0000)
These are the last instructions missing to complete SSE3 support.

For reference what was missing was found by a tool [1]:

$ x86db-gogen list --extension SSE3 --not-known
ADDSUBPD xmmreg,xmmrm [rm: 66 0f d0 /r] PRESCOTT,SSE3,SO
ADDSUBPS xmmreg,xmmrm [rm: f2 0f d0 /r] PRESCOTT,SSE3,SO

[1] https://github.com/dlespiau/x86db

Fixes #20293

Change-Id: Ib5a91bf64dcc5282cdb60eae740ae52b4db16ebd
Reviewed-on: https://go-review.googlesource.com/42990
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
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 4b7e95fbb1261d589d331beb001cfec74e050a3f..cdc5cd115b0bc8545e80c26485983b0a9a8bbb46 100644 (file)
@@ -212,22 +212,22 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
        ADDSS (R11), X11                        // f3450f581b
        ADDSS X2, X11                           // f3440f58da
        ADDSS X11, X11                          // f3450f58db
-       //TODO: ADDSUBPD (BX), X2               // 660fd013
-       //TODO: ADDSUBPD (R11), X2              // 66410fd013
-       //TODO: ADDSUBPD X2, X2                 // 660fd0d2
-       //TODO: ADDSUBPD X11, X2                // 66410fd0d3
-       //TODO: ADDSUBPD (BX), X11              // 66440fd01b
-       //TODO: ADDSUBPD (R11), X11             // 66450fd01b
-       //TODO: ADDSUBPD X2, X11                // 66440fd0da
-       //TODO: ADDSUBPD X11, X11               // 66450fd0db
-       //TODO: ADDSUBPS (BX), X2               // f20fd013
-       //TODO: ADDSUBPS (R11), X2              // f2410fd013
-       //TODO: ADDSUBPS X2, X2                 // f20fd0d2
-       //TODO: ADDSUBPS X11, X2                // f2410fd0d3
-       //TODO: ADDSUBPS (BX), X11              // f2440fd01b
-       //TODO: ADDSUBPS (R11), X11             // f2450fd01b
-       //TODO: ADDSUBPS X2, X11                // f2440fd0da
-       //TODO: ADDSUBPS X11, X11               // f2450fd0db
+       ADDSUBPD (BX), X2                       // 660fd013
+       ADDSUBPD (R11), X2                      // 66410fd013
+       ADDSUBPD X2, X2                         // 660fd0d2
+       ADDSUBPD X11, X2                        // 66410fd0d3
+       ADDSUBPD (BX), X11                      // 66440fd01b
+       ADDSUBPD (R11), X11                     // 66450fd01b
+       ADDSUBPD X2, X11                        // 66440fd0da
+       ADDSUBPD X11, X11                       // 66450fd0db
+       ADDSUBPS (BX), X2                       // f20fd013
+       ADDSUBPS (R11), X2                      // f2410fd013
+       ADDSUBPS X2, X2                         // f20fd0d2
+       ADDSUBPS X11, X2                        // f2410fd0d3
+       ADDSUBPS (BX), X11                      // f2440fd01b
+       ADDSUBPS (R11), X11                     // f2450fd01b
+       ADDSUBPS X2, X11                        // f2440fd0da
+       ADDSUBPS X11, X11                       // f2450fd0db
        //TODO: ADOXL (BX), DX                  // f30f38f613
        //TODO: ADOXL (R11), DX                 // f3410f38f613
        //TODO: ADOXL DX, DX                    // f30f38f6d2
index 8db5b107085b94dce438fee7dd9a40a6495b1eb7..4b37c39b8bfe28d3a8632b71f7def74ed048e34d 100644 (file)
@@ -524,6 +524,8 @@ const (
        AADDPS
        AADDSD
        AADDSS
+       AADDSUBPD
+       AADDSUBPS
        AANDNL
        AANDNQ
        AANDNPD
index 27abac28f76883001966057a5f9fc204be6dc93a..c58f7be4a36d72db51d491a811364d0e9e70e564 100644 (file)
@@ -467,6 +467,8 @@ var Anames = []string{
        "ADDPS",
        "ADDSD",
        "ADDSS",
+       "ADDSUBPD",
+       "ADDSUBPS",
        "ANDNL",
        "ANDNQ",
        "ANDNPD",
index 86c85c1a6fee757fd2ee2d65b6756294ab82f14a..e2d9d6f61f4732bae749a835b58fcdb20c202125 100644 (file)
@@ -969,6 +969,8 @@ var optab =
        {AADDQ, yaddl, Pw, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
        {AADDSD, yxm, Pf2, [23]uint8{0x58}},
        {AADDSS, yxm, Pf3, [23]uint8{0x58}},
+       {AADDSUBPD, yxm, Pq, [23]uint8{0xd0}},
+       {AADDSUBPS, yxm, Pf2, [23]uint8{0xd0}},
        {AADDW, yaddl, Pe, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
        {AADJSP, nil, 0, [23]uint8{}},
        {AANDB, yxorb, Pb, [23]uint8{0x24, 0x80, 04, 0x20, 0x22}},