]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/ppc64: clean up some opcodes
authorLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 10 Mar 2020 14:08:02 +0000 (10:08 -0400)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Fri, 13 Mar 2020 11:41:22 +0000 (11:41 +0000)
commit9d67a94217c0a46a2b02a1fc67bb3e436dac0c97
treee43df1e20db313d65472418671e25fd280e392ad
parent85e87f9d81c00d38a196c40f3a93477bc4b3294f
cmd/internal/obj/ppc64: clean up some opcodes

This does some clean up of the ppc64 opcodes to remove names
from the opcode list that don't actually assemble. At one time
names were added to this list to represent opcode "classes" to
organize other opcodes that have the same set of operand
combinations. Since this is not documented, it is confusing as
to which opcodes can be used in an asm file and which can't, and
which opcodes should be supported in the disassembler. It is
clearer for the user if the list of Go opcodes are all opcodes
that can be assembled with names that match the ppc64 opcode
where possible.

I found this when trying to use Go opcode XXLAND in an asm file
which seems like it should map to ppc64 xxland but when used it
gets this error:

go tool asm test_xxland.s
asm: bad r/r, r/r/r or r/r/r/r opcode XXLAND
asm: assembly failed

This change removes the opcodes that are only used for opcode
"classes" and fixes the case statement where they are referenced.
This also fixes XXLAND and XXPERM which are opcodes that should
assemble to their corresponding ppc64 opcode but do not.

Change-Id: I52300db6b22f7f8b3dd3491c3f35a384b943352c
Reviewed-on: https://go-review.googlesource.com/c/go/+/223138
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>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/asm/internal/asm/testdata/ppc64.s
src/cmd/internal/obj/ppc64/a.out.go
src/cmd/internal/obj/ppc64/anames.go
src/cmd/internal/obj/ppc64/asm9.go