cmd/internal/obj/x86: VPSHUFD takes an unsigned byte.

VPSHUFD should take an unsigned argument to be consistent with
PSHUFD. Also fix all usage.

Fixes #16499

Change-Id: Ie699c102afed0379445914a251710365b14d89b6
Reviewed-on: https://go-review.googlesource.com/25383
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Ilya Tocar 2016-08-01 17:43:24 +03:00 committed by Brad Fitzpatrick
parent df9eeb1922
commit 4e24e1d999
2 changed files with 3 additions and 3 deletions

View File

@ -855,8 +855,8 @@ var yvex_ri3 = []ytab{
}
var yvex_xyi3 = []ytab{
{Yi8, Yxm, Yxr, Zvex_i_rm_r, 2},
{Yi8, Yym, Yyr, Zvex_i_rm_r, 2},
{Yu8, Yxm, Yxr, Zvex_i_rm_r, 2},
{Yu8, Yym, Yyr, Zvex_i_rm_r, 2},
}
var yvex_yyi4 = []ytab{ //TODO don't hide 4 op, some version have xmm version

View File

@ -302,7 +302,7 @@
ADDL y0, y2; \ // y2 = S1 + CH // --
; \
VPXOR XTMP4, XTMP3, XTMP1; \ // XTMP1 = s0
VPSHUFD $-6, XDWORD3, XTMP2; \ // XTMP2 = W[-2] {BBAA}
VPSHUFD $0xFA, XDWORD3, XTMP2; \ // XTMP2 = W[-2] {BBAA}
ORL T1, y3; \ // y3 = MAJ = (a|c)&b)|(a&c) // MAJ
ADDL y1, h; \ // h = k + w + h + S0 // --
; \