From 4e24e1d9996b0b0155c8349e49244d9694c89708 Mon Sep 17 00:00:00 2001 From: Ilya Tocar Date: Mon, 1 Aug 2016 17:43:24 +0300 Subject: [PATCH] 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 Reviewed-by: Keith Randall TryBot-Result: Gobot Gobot --- src/cmd/internal/obj/x86/asm6.go | 4 ++-- src/crypto/sha256/sha256block_amd64.s | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cmd/internal/obj/x86/asm6.go b/src/cmd/internal/obj/x86/asm6.go index 8a299fefe3..494e422081 100644 --- a/src/cmd/internal/obj/x86/asm6.go +++ b/src/cmd/internal/obj/x86/asm6.go @@ -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 diff --git a/src/crypto/sha256/sha256block_amd64.s b/src/crypto/sha256/sha256block_amd64.s index 6ab3b52d65..6a740f9b59 100644 --- a/src/crypto/sha256/sha256block_amd64.s +++ b/src/crypto/sha256/sha256block_amd64.s @@ -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 // -- ; \ -- 2.48.1