diff options
author | Alan Modra <amodra@gmail.com> | 2012-10-26 03:40:37 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-10-26 03:40:37 +0000 |
commit | 1fe532cf6090bf2babd3c630e07b3c8f01c2c333 (patch) | |
tree | ec8b18a05cdfe31c6c11267968145f84a25118ce /gas | |
parent | e3b0b0abf987d925f2a79bceea08ff2cb566253a (diff) | |
download | gdb-1fe532cf6090bf2babd3c630e07b3c8f01c2c333.zip gdb-1fe532cf6090bf2babd3c630e07b3c8f01c2c333.tar.gz gdb-1fe532cf6090bf2babd3c630e07b3c8f01c2c333.tar.bz2 |
PR target/14758
bfd/
* elf32-ppc.c (ppc_elf_reloc_type_lookup): Decode ppc64 _DS
bfd_reloc values. Map to corresponding D-form relocs.
(is_insn_ds_form, is_insn_qs_form): New functions.
(ppc_elf_relocate_section): Validate insn with DS-form or DQ-form
fields using D-form reloc.
gas/
* config/tc-ppc.c (ppc_setup_opcodes): Fix comment.
(md_assemble): Translate to _DS relocs for ppc32 as well as ppc64.
(tc_gen_reloc): Handle _DS relocs in ppc32 mode.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 035a9cc..7b85c7c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2012-10-26 Alan Modra <amodra@gmail.com> + + PR target/14758 + * config/tc-ppc.c (ppc_setup_opcodes): Fix comment. + (md_assemble): Translate to _DS relocs for ppc32 as well as ppc64. + (tc_gen_reloc): Handle _DS relocs in ppc32 mode. + 2012-10-22 Simon Baldwin <simonb@google.com> * as.c (dump_statistics): Compute data size as the delta between diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 2820c31..62c4791 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1513,7 +1513,7 @@ insn_validate (const struct powerpc_opcode *op) } /* Insert opcodes and macros into hash tables. Called at startup and - for .cpu pseudo. */ + for .machine pseudo. */ static void ppc_setup_opcodes (void) @@ -3062,8 +3062,7 @@ md_assemble (char *str) break; } - if (ppc_obj64 - && (operand->flags & (PPC_OPERAND_DS | PPC_OPERAND_DQ)) != 0) + if ((operand->flags & (PPC_OPERAND_DS | PPC_OPERAND_DQ)) != 0) { switch (reloc) { |