aboutsummaryrefslogtreecommitdiff
path: root/opcodes/ppc-dis.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-03-27 08:19:48 +1030
committerAlan Modra <amodra@gmail.com>2017-03-27 21:49:32 +1030
commit9b7539374617a94c2d646f49e1bbfc954b11891d (patch)
treebdf1936e48eb6ea08eb1d4cf297c067f9846351e /opcodes/ppc-dis.c
parentd721ba37d8995b9c11a0b8eef0f4d2dc022f85aa (diff)
downloadgdb-9b7539374617a94c2d646f49e1bbfc954b11891d.zip
gdb-9b7539374617a94c2d646f49e1bbfc954b11891d.tar.gz
gdb-9b7539374617a94c2d646f49e1bbfc954b11891d.tar.bz2
PR21303, objdump doesn't show e200z4 insns
PR 21303 opcodes/ * ppc-dis.c (struct ppc_mopt): Comment. (ppc_opts <e200z4>): Move PPC_OPCODE_VLE from .sticky to .cpu. gas/ * testsuite/gas/ppc/pr21303.d, * testsuite/gas/ppc/pr21303.s: New test * testsuite/gas/ppc/ppc.exp: Run it.
Diffstat (limited to 'opcodes/ppc-dis.c')
-rw-r--r--opcodes/ppc-dis.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c
index ca50689..f3db062 100644
--- a/opcodes/ppc-dis.c
+++ b/opcodes/ppc-dis.c
@@ -46,8 +46,19 @@ struct dis_private
(((struct dis_private *) ((INFO)->private_data))->dialect)
struct ppc_mopt {
+ /* Option string, without -m or -M prefix. */
const char *opt;
+ /* CPU option flags. */
ppc_cpu_t cpu;
+ /* Flags that should stay on, even when combined with another cpu
+ option. This should only be used for generic options like
+ "-many" or "-maltivec" where it is reasonable to add some
+ capability to another cpu selection. The added flags are sticky
+ so that, for example, "-many -me500" and "-me500 -many" result in
+ the same assembler or disassembler behaviour. Do not use
+ "sticky" for specific cpus, as this will prevent that cpu's flags
+ from overriding the defaults set in powerpc_init_dialect or a
+ prior -m option. */
ppc_cpu_t sticky;
};
@@ -109,8 +120,8 @@ struct ppc_mopt ppc_opts[] = {
{ "e200z4", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE| PPC_OPCODE_SPE
| PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK
| PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
- | PPC_OPCODE_E500 | PPC_OPCODE_E200Z4),
- PPC_OPCODE_VLE },
+ | PPC_OPCODE_E500 | PPC_OPCODE_VLE | PPC_OPCODE_E200Z4),
+ 0 },
{ "e300", PPC_OPCODE_PPC | PPC_OPCODE_E300,
0 },
{ "e500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE