binutils-gdb/include
Alan Modra 61a457e5da e200 LSP support
It has bothered me for a long time that we have disabled LSP (and SPE)
tests.  Also the LSP test comment indicating there is something wrong
with get_powerpc_dialect.  I don't think there is.  Decoding of a VLE
instruction depends on whether the processor is in VLE mode (some
processors support both VLE and standard PPC) which we flag per
section with SHF_PPC_VLE for decoding when disassembling.

Background: Some versions of powerpc e200 have "Lightweight Signal
Processing" support, examples being e200z215 and e200z425.  As far as
I can tell, LSP and SPE are mutually exclusive.  This seems to be
borne out by insn encoding, for example LSP "zvaddih" and SPE "evaddw"
have the same encoding.  So none of the processor descriptions in
ppc_opts ought to have both PPC_OPCODE_LSP and PPC_OPCODE_SPE/2, if we
want disassembly to work.  I also could not find anything to suggest
that the LSP insns are enabled only in VLE mode, which means the LSP
insns should not be in vle_opcodes.

Fix all this by moving the LSP insns to their own table, and add a new
e200z2 cpu entry with LSP support, removing LSP from -me200z4 and from
-mvle.  (Yes, I know, as I said above some of the e200z4 processors
have LSP.  Others have SPE.  It's hard to choose good options.  Think
of z2 as meaning earlier, z4 as later.)  Also add -mlsp to allow
adding the LSP insn set.

include/
	* opcode/ppc.h (lsp_opcodes, lsp_num_opcodes): Declare.
	(LSP_OP_TO_SEG): Define.
binutils/
	* doc/binutils.texi: Update ppc docs.
gas/
	* config/tc-ppc.c (ppc_setup_opcodes): Add lsp opcodes to ppc_hash.
	* doc/c-ppc.texi: Document e200 and lsp.
	* testsuite/gas/ppc/lsp-checks.d: Assemble with -me200z2.
	* testsuite/gas/ppc/lsp.d: Likewise, disassembly too.
	* testsuite/gas/ppc/ppc.exp: Don't xfail lsp test.
opcodes/
	* ppc-dis.c (ppc_opts): Add e200z2 and lsp.  Don't set
	PPC_OPCODE_LSP for e200z4 or vle.
	(ppc_parse_cpu): Mutually exclude LSP and SPE.
	(LSP_OPCD_SEGS): Define.
	(lsp_opcd_indices): New array.
	(disassemble_init_powerpc): Init lsp_opcd_indices.
	(lookup_lsp): New function.
	(print_insn_powerpc): Call it.
	* ppc-opc.c: Include libiberty.h for ARRAY_SIZE and use throughout.
	(vle_opcodes): Move LSP opcodes to..
	(lsp_opcodes): ..here, and sort.
	(lsp_num_opcodes): New.
2022-10-14 22:07:18 +10:30
..
aout Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
cgen Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
coff bfd: Add support for LoongArch64 EFI (efi-*-loongarch64). 2022-08-10 09:26:25 +08:00
elf LoongArch: Update ELF e_flags handling according to specification. 2022-09-30 14:00:47 +08:00
gdb gdbsupport: move include/gdb/fileio.h contents to fileio.h 2022-09-21 14:11:03 -04:00
mach-o Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
opcode e200 LSP support 2022-10-14 22:07:18 +10:30
sim Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
som Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
vms Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
alloca-conf.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
ansidecl.h Import libiberty from gcc 2022-05-31 21:14:00 +09:30
bfdlink.h Tidy warn-execstack handling 2022-05-20 16:11:25 +09:30
binary-io.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
bout.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
ChangeLog Fix self-move warning check for GCC 13+ 2022-10-03 16:56:24 +02:00
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-2016 ChangeLog rotation 2017-01-02 13:55:05 +10:30
ChangeLog-2017 ChangeLog rotation 2018-01-03 17:49:42 +10:30
ChangeLog-2018 ChangeLog rotation 2019-01-01 21:25:40 +10:30
ChangeLog-2019 ChangeLog rotation 2020-01-01 18:12:08 +10:30
ChangeLog-2020 ChangeLog rotation 2021-01-01 10:31:02 +10:30
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
collectorAPI.h gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
COPYING
COPYING3
ctf-api.h libctf: add a comment explaining how to use ctf_*open 2022-04-28 11:47:11 +01:00
ctf.h include, libctf, ld: extend variable section to contain functions too 2022-03-23 13:48:32 +00:00
demangle.h Import libiberty from gcc 2022-05-31 21:14:00 +09:30
diagnostics.h Fix self-move warning check for GCC 13+ 2022-10-03 16:56:24 +02:00
dis-asm.h opcodes: Add non-enum disassembler options 2022-09-06 02:23:21 +00:00
dwarf2.def gdb/fortran: support ptype and print commands for namelist variables 2022-02-11 15:26:25 +00:00
dwarf2.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
dyn-string.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
environ.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
fibheap.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
filenames.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
floatformat.h Import libiberty from gcc 2022-05-13 16:43:15 +09:30
fnmatch.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
fopen-bin.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
fopen-same.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
fopen-vms.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
gcc-c-fe.def Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
gcc-c-interface.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
gcc-cp-fe.def Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
gcc-cp-interface.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
gcc-interface.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
getopt.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
hashtab.h include: remove use of PTR 2022-05-10 11:21:37 +09:30
hp-symtab.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
leb128.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
libcollector.h gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
libfcollector.h gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
libiberty.h Synchronize binutils libiberty sources with gcc version. 2022-01-13 12:25:34 +00:00
longlong.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
lto-symtab.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
MAINTAINERS Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
md5.h Import libiberty from gcc 2022-05-13 16:43:15 +09:30
oasys.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
objalloc.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
obstack.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
os9k.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
partition.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
plugin-api.h LTO plugin: sync header file with GCC 2022-07-12 15:35:00 +02:00
progress.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
safe-ctype.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
sha1.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
simple-object.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
sort.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
splay-tree.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
symcat.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
timeval-utils.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
vtv-change-permission.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
xregex2.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
xregex.h merge from gcc 2011-07-25 17:11:48 +00:00
xtensa-config.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
xtensa-isa-internal.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30
xtensa-isa.h Update year range in copyright notice of binutils files 2022-01-02 12:04:28 +10:30