1
0
mirror of https://github.com/golang/go synced 2024-11-23 11:40:07 -07:00
go/src/internal
bill_ofarrell 897e0807c3 crypto/elliptic: utilize faster z14 multiply/square instructions (when available)
In the s390x assembly implementation of NIST P-256 curve, utilize faster multiply/square
instructions introduced in the z14. These new instructions are designed for crypto
and are constant time. The algorithm is unchanged except for faster
multiplication when run on a z14 or later. On z13, the original mutiplication
(also constant time) is used.

P-256 performance is critical in many applications, such as Blockchain.

name            old time      new time     delta
BaseMultP256    24396 ns/op   21564 ns/op  1.13x
ScalarMultP256  87546 ns/op   72813 ns/op. 1.20x

Change-Id: I7e6d8b420fac56d5f9cc13c9423e2080df854bac
Reviewed-on: https://go-review.googlesource.com/c/146022
Reviewed-by: Michael Munday <mike.munday@ibm.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Michael Munday <mike.munday@ibm.com>
2018-12-05 10:58:44 +00:00
..
bytealg internal/bytealg, runtime: provide linknames for pushed symbols 2018-11-12 20:27:16 +00:00
cpu crypto/elliptic: utilize faster z14 multiply/square instructions (when available) 2018-12-05 10:58:44 +00:00
fmtsort fmt: print maps in key-sorted order 2018-10-18 21:12:24 +00:00
goroot all: use "reports whether" consistently instead of "returns whether" 2018-12-02 15:12:26 +00:00
nettrace
poll syscall: implement syscalls on Darwin using libSystem 2018-11-07 20:27:01 +00:00
race
singleflight net: don't let cancelation of a DNS lookup affect another lookup 2018-03-16 13:39:38 +00:00
syscall cmd/compile: allow bodyless function if it is linkname'd 2018-11-26 20:00:59 +00:00
testenv all: skip unsupported tests for js/wasm 2018-04-30 19:39:18 +00:00
testlog
trace cmd/trace: revert internal/traceparser 2018-11-22 02:59:55 +00:00
x vendor/golang_org/x: move to internal/x 2018-11-29 15:42:16 +00:00