]> Cypherpunks repositories - gostls13.git/commit
crypto/aes: enable aes-cbc asm for ppc64
authorPaul E. Murphy <murp@ibm.com>
Mon, 9 May 2022 15:44:07 +0000 (10:44 -0500)
committerPaul Murphy <murp@ibm.com>
Fri, 13 May 2022 14:14:26 +0000 (14:14 +0000)
commitb553f51fcd959c9d2d113ce74eba6eac958e2a5b
tree2ef582241547d62dad9b858a5394b63b93cb86d3
parent016d7552138077741a9c3fdadc73c0179f5d3ff7
crypto/aes: enable aes-cbc asm for ppc64

This reworks how we load/store vector registers using the new
bi-endian P9 instruction emulation macros. This also removes
quite a bit of asm used to align and reorder vector registers.

This is also a slight improvement on P9 ppc64le/linux:

    name             old speed      new speed      delta
    AESCBCEncrypt1K   936MB/s ± 0%   943MB/s ± 0%  +0.80%
    AESCBCDecrypt1K  1.28GB/s ± 0%  1.37GB/s ± 0%  +6.76%

Updates #18499

Change-Id: Ic5ff71d217d7302b6ae4e8d877c25004bfda5ecd
Reviewed-on: https://go-review.googlesource.com/c/go/+/405134
Run-TryBot: Paul Murphy <murp@ibm.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/crypto/aes/asm_ppc64x.s
src/crypto/aes/cbc_ppc64x.go [moved from src/crypto/aes/cbc_ppc64le.go with 98% similarity]