1
0
mirror of https://github.com/golang/go synced 2024-11-23 00:30:07 -07:00

cmd/asm,cmd/internal/obj/ppc64: add VPERMXOR to ppc64 assembler

VPERMXOR is missing from the Go assembler for ppc64. It has the
same format as VPERM. It was requested by an external user so
they could write an optimized algorithm in asm.

Change-Id: Icf4c682f7f46716ccae64e6ae3d62e8cec67f6c1
Reviewed-on: https://go-review.googlesource.com/c/151578
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
This commit is contained in:
Lynn Boger 2018-11-13 16:05:15 -05:00
parent 9aadbf5755
commit 048580d341
4 changed files with 6 additions and 1 deletions

View File

@ -948,6 +948,7 @@ label1:
// <MNEMONIC> VRA,VRB,VRC,VRT produces
// <mnemonic> VRT,VRA,VRB,VRC
VPERM V3, V2, V1, V0
VPERMXOR V3, V2, V1, V0
// Vector bit permute, VX-form
// <MNEMONIC> VRA,VRB,VRT produces

View File

@ -903,6 +903,7 @@ const (
AVCMPNEZB
AVCMPNEZBCC
AVPERM
AVPERMXOR
AVBPERMQ
AVBPERMD
AVSEL

View File

@ -493,6 +493,7 @@ var Anames = []string{
"VCMPNEZB",
"VCMPNEZBCC",
"VPERM",
"VPERMXOR",
"VBPERMQ",
"VBPERMD",
"VSEL",

View File

@ -1498,7 +1498,7 @@ func buildop(ctxt *obj.Link) {
opset(AVCMPNEZBCC, r0)
case AVPERM: /* vperm */
opset(AVPERM, r0)
opset(AVPERMXOR, r0)
case AVBPERMQ: /* vbpermq, vbpermd */
opset(AVBPERMD, r0)
@ -4503,6 +4503,8 @@ func (c *ctxt9) oprrr(a obj.As) uint32 {
case AVPERM:
return OPVX(4, 43, 0, 0) /* vperm - v2.03 */
case AVPERMXOR:
return OPVX(4, 45, 0, 0) /* vpermxor - v2.03 */
case AVSEL:
return OPVX(4, 42, 0, 0) /* vsel - v2.03 */