zuc: eia, ppc64x optimization #253

This commit is contained in:
Sun Yimin 2024-09-30 17:27:26 +08:00 committed by GitHub
parent c33880ebe3
commit 50f5d29e49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 11 additions and 1 deletions

View File

@ -4,3 +4,4 @@ import "golang.org/x/sys/cpu"
var HasAES = cpu.X86.HasAES var HasAES = cpu.X86.HasAES
var HasGFMUL = cpu.X86.HasPCLMULQDQ var HasGFMUL = cpu.X86.HasPCLMULQDQ
var HasVPMSUMD = false

View File

@ -6,3 +6,4 @@ import "golang.org/x/sys/cpu"
var HasAES = cpu.ARM64.HasAES var HasAES = cpu.ARM64.HasAES
var HasGFMUL = cpu.ARM64.HasPMULL var HasGFMUL = cpu.ARM64.HasPMULL
var HasVPMSUMD = false

View File

@ -8,3 +8,4 @@ package cpuid
// to all Go programs running on darwin/arm64. // to all Go programs running on darwin/arm64.
var HasAES = true var HasAES = true
var HasGFMUL = true var HasGFMUL = true
var HasVPMSUMD = false

View File

@ -4,3 +4,4 @@ package cpuid
var HasAES = true var HasAES = true
var HasGFMUL = false var HasGFMUL = false
var HasVPMSUMD = true

View File

@ -8,7 +8,7 @@ import (
) )
var supportsAES = cpuid.HasAES var supportsAES = cpuid.HasAES
var supportsGFMUL = cpuid.HasGFMUL var supportsGFMUL = cpuid.HasGFMUL || cpuid.HasVPMSUMD
var useAVX = cpu.X86.HasAVX var useAVX = cpu.X86.HasAVX
//go:noescape //go:noescape

View File

@ -93,9 +93,15 @@ TEXT ·eia3Round16B(SB),NOSPLIT,$0
VXOR XTMP3, XTMP4, XTMP3 VXOR XTMP3, XTMP4, XTMP3
VSPLTW $2, XTMP3, XDIGEST VSPLTW $2, XTMP3, XDIGEST
// Update tag
MFVSRWZ XDIGEST, PTR MFVSRWZ XDIGEST, PTR
MOVWZ (R3), R6 MOVWZ (R3), R6
XOR R6, PTR, R6 XOR R6, PTR, R6
MOVW R6, (R3) MOVW R6, (R3)
// Copy last 16 bytes of KS to the front
MOVD $16, PTR
LXVD2X (PTR)(R4), XTMP1
STXVD2X XTMP1, (R4)(R0)
RET RET