Commit 26dadbe3 authored by isharipo's avatar isharipo Committed by Ilya Tocar

cmd/asm: add amd64 PAB{SB,SD,SW}, PMADDUBSW, PMULHRSW, PSIG{NB,ND,NW}

instructions

1st change out of 3 to cover AMD64 SSSE3 instruction set in Go asm.
This commit adds instructions that do not require new named ytab sets.

Change-Id: I0c3dfd8d39c3daa8b7683ab163c63145626d042e
Reviewed-on: https://go-review.googlesource.com/56834
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIlya Tocar <ilya.tocar@intel.com>
Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent 16edf0b1
......@@ -188,6 +188,9 @@ const (
AOUTSB
AOUTSL
AOUTSW
APABSB
APABSD
APABSW
APAUSE
APOPAL
APOPAW
......@@ -652,6 +655,7 @@ const (
APINSRD
APINSRQ
APINSRW
APMADDUBSW
APMADDWL
APMAXSW
APMAXUB
......@@ -671,6 +675,7 @@ const (
APMOVZXWD
APMOVZXWQ
APMULDQ
APMULHRSW
APMULHUW
APMULHW
APMULLD
......@@ -683,6 +688,9 @@ const (
APSHUFL
APSHUFLW
APSHUFW
APSIGNB
APSIGND
APSIGNW
APSLLL
APSLLO
APSLLQ
......
......@@ -150,6 +150,9 @@ var Anames = []string{
"OUTSB",
"OUTSL",
"OUTSW",
"PABSB",
"PABSD",
"PABSW",
"PAUSE",
"POPAL",
"POPAW",
......@@ -595,6 +598,7 @@ var Anames = []string{
"PINSRD",
"PINSRQ",
"PINSRW",
"PMADDUBSW",
"PMADDWL",
"PMAXSW",
"PMAXUB",
......@@ -614,6 +618,7 @@ var Anames = []string{
"PMOVZXWD",
"PMOVZXWQ",
"PMULDQ",
"PMULHRSW",
"PMULHUW",
"PMULHW",
"PMULLD",
......@@ -626,6 +631,9 @@ var Anames = []string{
"PSHUFL",
"PSHUFLW",
"PSHUFW",
"PSIGNB",
"PSIGND",
"PSIGNW",
"PSLLL",
"PSLLO",
"PSLLQ",
......
......@@ -1255,6 +1255,9 @@ var optab =
{AOUTSL, ynone, Px, [23]uint8{0x6f}},
{AOUTSW, ynone, Pe, [23]uint8{0x6f}},
{AOUTW, yin, Pe, [23]uint8{0xe7, 0xef}},
{APABSB, yxm_q4, Pq4, [23]uint8{0x1c}},
{APABSD, yxm_q4, Pq4, [23]uint8{0x1e}},
{APABSW, yxm_q4, Pq4, [23]uint8{0x1d}},
{APACKSSLW, ymm, Py1, [23]uint8{0x6b, Pe, 0x6b}},
{APACKSSWB, ymm, Py1, [23]uint8{0x63, Pe, 0x63}},
{APACKUSWB, ymm, Py1, [23]uint8{0x67, Pe, 0x67}},
......@@ -1292,6 +1295,7 @@ var optab =
{APINSRB, yinsr, Pq, [23]uint8{0x3a, 0x20, 00}},
{APINSRD, yinsr, Pq, [23]uint8{0x3a, 0x22, 00}},
{APINSRQ, yinsr, Pq3, [23]uint8{0x3a, 0x22, 00}},
{APMADDUBSW, yxm_q4, Pq4, [23]uint8{0x04}},
{APMADDWL, ymm, Py1, [23]uint8{0xf5, Pe, 0xf5}},
{APMAXSW, yxm, Pe, [23]uint8{0xee}},
{APMAXUB, yxm, Pe, [23]uint8{0xde}},
......@@ -1311,6 +1315,7 @@ var optab =
{APMOVZXWD, yxm_q4, Pq4, [23]uint8{0x33}},
{APMOVZXWQ, yxm_q4, Pq4, [23]uint8{0x34}},
{APMULDQ, yxm_q4, Pq4, [23]uint8{0x28}},
{APMULHRSW, yxm_q4, Pq4, [23]uint8{0x0b}},
{APMULHUW, ymm, Py1, [23]uint8{0xe4, Pe, 0xe4}},
{APMULHW, ymm, Py1, [23]uint8{0xe5, Pe, 0xe5}},
{APMULLD, yxm_q4, Pq4, [23]uint8{0x40}},
......@@ -1334,6 +1339,9 @@ var optab =
{APSHUFLW, yxshuf, Pf2, [23]uint8{0x70, 00}},
{APSHUFW, ymshuf, Pm, [23]uint8{0x70, 00}},
{APSHUFB, ymshufb, Pq, [23]uint8{0x38, 0x00}},
{APSIGNB, yxm_q4, Pq4, [23]uint8{0x08}},
{APSIGND, yxm_q4, Pq4, [23]uint8{0x0a}},
{APSIGNW, yxm_q4, Pq4, [23]uint8{0x09}},
{APSLLO, ypsdq, Pq, [23]uint8{0x73, 07}},
{APSLLL, yps, Py3, [23]uint8{0xf2, 0x72, 06, Pe, 0xf2, Pe, 0x72, 06}},
{APSLLQ, yps, Py3, [23]uint8{0xf3, 0x73, 06, Pe, 0xf3, Pe, 0x73, 06}},
......
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