]> Cypherpunks repositories - gostls13.git/commit
cmd/asm,cmd/compile: support 5 operand RLWNM/RLWMI on ppc64
authorPaul E. Murphy <murp@ibm.com>
Tue, 5 Jan 2021 22:44:43 +0000 (16:44 -0600)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 9 Mar 2021 20:35:41 +0000 (20:35 +0000)
commit48ddf7012875014d3cab4a02002799a520b087a1
tree91e66413a8cd6f13f2bb48d619fe3b6fe3ed2d1f
parent18510ae88ffcb9c4a914805fde3e613539f9b6dc
cmd/asm,cmd/compile: support 5 operand RLWNM/RLWMI on ppc64

These instructions are actually 5 argument opcodes as specified
by the ISA.  Prior to this patch, the MB and ME arguments were
merged into a single bitmask operand to workaround the limitations
of the ppc64 assembler backend.

This limitation no longer exists. Thus, we can pass operands for
these opcodes without having to merge the MB and ME arguments in
the assembler frontend or compiler backend.

Likewise, support for 4 operand variants is unchanged.

Change-Id: Ib086774f3581edeaadfd2190d652aaaa8a90daeb
Reviewed-on: https://go-review.googlesource.com/c/go/+/298750
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: Carlos Eduardo Seo <carlos.seo@linaro.org>
Trust: Carlos Eduardo Seo <carlos.seo@linaro.org>
src/cmd/asm/internal/asm/asm.go
src/cmd/asm/internal/asm/testdata/ppc64.s
src/cmd/compile/internal/ppc64/ssa.go
src/cmd/internal/obj/ppc64/asm9.go
test/codegen/rotate.go
test/codegen/shift.go