PowerPC se_rfmci and VLE, SPE2 and LSP insns with -many
authorAlan Modra <amodra@gmail.com>
Fri, 14 Oct 2022 01:58:33 +0000 (12:28 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 16 Oct 2022 03:24:50 +0000 (13:54 +1030)
commit45685a2fd86073e76a772c5b677f14f8465a5040
treef7ddbaca363370fcdec5448d01896bcc744958e4
parent206e9791cb09459bf92603428370c16bfde282ac
PowerPC se_rfmci and VLE, SPE2 and LSP insns with -many

I noticed recently that se_rfmci, a VLE mode instruction, was being
accepted by non-VLE cpus, and also that se_rfmci by itself in a
section did not cause SHF_PPC_VLE to be set.  ie. both testcases added
by this patch fail without the changes to tc-ppc.c here.

Also, VLE, SPE2 and LSP insns were not accepted by the assembler with
-many nor were SPE2 and LSP being disassembled with -Many.

gas/
* config/tc-ppc.c (ppc_setup_opcodes): Wrap long lines.  Add
vle_opcodes when PPC_OPCODE_VLE or PPC_OPCODE_ANY.  Simplify
disassembler index segment checks.  Add LSP and SPE2 opcodes
when PPC_OPCODE_ANY too.
(md_assemble): Correct logic adding PPC_APUINFO_VLE and
SHF_PPC_VLE.
* testsuite/gas/ppc/se_rfmci.s
* testsuite/gas/ppc/se_rfmci.d,
* testsuite/gas/ppc/se_rfmci_bad.d: New tests.
* testsuite/gas/ppc/ppc.exp: Run them.
opcodes/
* ppc-dis.c (print_insn_powerpc): Disassemble SPE2 and LSP insn
when -Many.
* ppc-opc.c (vle_opcodes <se_rfmci>): Comment.
gas/config/tc-ppc.c
gas/testsuite/gas/ppc/ppc.exp
gas/testsuite/gas/ppc/se_rfmci.d [new file with mode: 0644]
gas/testsuite/gas/ppc/se_rfmci.s [new file with mode: 0644]
gas/testsuite/gas/ppc/se_rfmci_bad.d [new file with mode: 0644]
opcodes/ppc-dis.c
opcodes/ppc-opc.c