]> Cypherpunks repositories - gostls13.git/commit
cmd/asm: add s390x VMSLG instruction variants
authorbill_ofarrell <billo@ca.ibm.com>
Fri, 26 Oct 2018 21:33:51 +0000 (17:33 -0400)
committerMichael Munday <mike.munday@ibm.com>
Mon, 29 Oct 2018 09:54:51 +0000 (09:54 +0000)
commit3f3142ad99155424007b8e8182265b5b716b44ee
tree6e84bbfaa93d828672385d7544f098826926ab02
parent5c359736f8d67338b53c26aaef52139ae8cd0538
cmd/asm: add s390x VMSLG instruction variants

VMSLG has three variants on z14 and later machines. These variants are used in "limbified" squaring:
VMSLEG: Even Shift Indication -- the even-indexed intermediate result is doubled
VMSLOG: Odd Shift Indication -- the odd-indexed intermediate result is doubled
VMSLEOG: Even and Odd Shift Indication -- both intermediate results are doubled
Limbified squaring is very useful for high performance cryptographic algorithms, such as
elliptic curve. This change allows these instructions to be used in Go assembly.

Change-Id: Iaad577b07320205539f99b3cb37a2a984882721b
Reviewed-on: https://go-review.googlesource.com/c/145180
Reviewed-by: Michael Munday <mike.munday@ibm.com>
src/cmd/asm/internal/asm/testdata/s390x.s
src/cmd/internal/obj/s390x/a.out.go
src/cmd/internal/obj/s390x/anames.go
src/cmd/internal/obj/s390x/asmz.go
src/cmd/internal/obj/s390x/vector.go