Commit 1e607f22 authored by Damien Lespiau's avatar Damien Lespiau Committed by Ilya Tocar

cmd/internal/obj/x86: add ADDSUBPS/PD

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: default avatarIlya Tocar <ilya.tocar@intel.com>
parent 71c9454f
...@@ -212,22 +212,22 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0 ...@@ -212,22 +212,22 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
ADDSS (R11), X11 // f3450f581b ADDSS (R11), X11 // f3450f581b
ADDSS X2, X11 // f3440f58da ADDSS X2, X11 // f3440f58da
ADDSS X11, X11 // f3450f58db ADDSS X11, X11 // f3450f58db
//TODO: ADDSUBPD (BX), X2 // 660fd013 ADDSUBPD (BX), X2 // 660fd013
//TODO: ADDSUBPD (R11), X2 // 66410fd013 ADDSUBPD (R11), X2 // 66410fd013
//TODO: ADDSUBPD X2, X2 // 660fd0d2 ADDSUBPD X2, X2 // 660fd0d2
//TODO: ADDSUBPD X11, X2 // 66410fd0d3 ADDSUBPD X11, X2 // 66410fd0d3
//TODO: ADDSUBPD (BX), X11 // 66440fd01b ADDSUBPD (BX), X11 // 66440fd01b
//TODO: ADDSUBPD (R11), X11 // 66450fd01b ADDSUBPD (R11), X11 // 66450fd01b
//TODO: ADDSUBPD X2, X11 // 66440fd0da ADDSUBPD X2, X11 // 66440fd0da
//TODO: ADDSUBPD X11, X11 // 66450fd0db ADDSUBPD X11, X11 // 66450fd0db
//TODO: ADDSUBPS (BX), X2 // f20fd013 ADDSUBPS (BX), X2 // f20fd013
//TODO: ADDSUBPS (R11), X2 // f2410fd013 ADDSUBPS (R11), X2 // f2410fd013
//TODO: ADDSUBPS X2, X2 // f20fd0d2 ADDSUBPS X2, X2 // f20fd0d2
//TODO: ADDSUBPS X11, X2 // f2410fd0d3 ADDSUBPS X11, X2 // f2410fd0d3
//TODO: ADDSUBPS (BX), X11 // f2440fd01b ADDSUBPS (BX), X11 // f2440fd01b
//TODO: ADDSUBPS (R11), X11 // f2450fd01b ADDSUBPS (R11), X11 // f2450fd01b
//TODO: ADDSUBPS X2, X11 // f2440fd0da ADDSUBPS X2, X11 // f2440fd0da
//TODO: ADDSUBPS X11, X11 // f2450fd0db ADDSUBPS X11, X11 // f2450fd0db
//TODO: ADOXL (BX), DX // f30f38f613 //TODO: ADOXL (BX), DX // f30f38f613
//TODO: ADOXL (R11), DX // f3410f38f613 //TODO: ADOXL (R11), DX // f3410f38f613
//TODO: ADOXL DX, DX // f30f38f6d2 //TODO: ADOXL DX, DX // f30f38f6d2
......
...@@ -524,6 +524,8 @@ const ( ...@@ -524,6 +524,8 @@ const (
AADDPS AADDPS
AADDSD AADDSD
AADDSS AADDSS
AADDSUBPD
AADDSUBPS
AANDNL AANDNL
AANDNQ AANDNQ
AANDNPD AANDNPD
......
...@@ -467,6 +467,8 @@ var Anames = []string{ ...@@ -467,6 +467,8 @@ var Anames = []string{
"ADDPS", "ADDPS",
"ADDSD", "ADDSD",
"ADDSS", "ADDSS",
"ADDSUBPD",
"ADDSUBPS",
"ANDNL", "ANDNL",
"ANDNQ", "ANDNQ",
"ANDNPD", "ANDNPD",
......
...@@ -969,6 +969,8 @@ var optab = ...@@ -969,6 +969,8 @@ var optab =
{AADDQ, yaddl, Pw, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}}, {AADDQ, yaddl, Pw, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
{AADDSD, yxm, Pf2, [23]uint8{0x58}}, {AADDSD, yxm, Pf2, [23]uint8{0x58}},
{AADDSS, yxm, Pf3, [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}}, {AADDW, yaddl, Pe, [23]uint8{0x83, 00, 0x05, 0x81, 00, 0x01, 0x03}},
{AADJSP, nil, 0, [23]uint8{}}, {AADJSP, nil, 0, [23]uint8{}},
{AANDB, yxorb, Pb, [23]uint8{0x24, 0x80, 04, 0x20, 0x22}}, {AANDB, yxorb, Pb, [23]uint8{0x24, 0x80, 04, 0x20, 0x22}},
......
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