From: Dimitar Dimitrov Date: Wed, 13 Dec 2017 13:08:50 +0000 (+0000) Subject: This patch enables disassembler_needs_relocs for PRU. It is needed to print correct... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=024d185c10a48339ae06634d0738dd796a159cd8;p=binutils-gdb.git This patch enables disassembler_needs_relocs for PRU. It is needed to print correct symbols when disassembling arguments of "call" instructions with a relocation. opcodes * disassemble.c: Enable disassembler_needs_relocs for PRU. gas * testsuite/gas/pru/extern.s: New test for print of U16_PMEMM relocation. * testsuite/gas/pru/extern.d: New test driver. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 99cd42582eb..dcc4cb8ea97 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2017-12-13 Dimitar Dimitrov + + * testsuite/gas/pru/extern.s: New test for print of U16_PMEMM + relocation. + * testsuite/gas/pru/extern.d: New test driver. + 2017-12-12 Alan Modra PR 21118 diff --git a/gas/testsuite/gas/pru/extern.d b/gas/testsuite/gas/pru/extern.d new file mode 100644 index 00000000000..e06f758ff72 --- /dev/null +++ b/gas/testsuite/gas/pru/extern.d @@ -0,0 +1,10 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: PRU extern function call dump + +# Test dumping of U16_PMEMIMM relocation + +.*: +file format elf32-pru + +Disassembly of section .text: +0+0000 <[^>]*> 230000c3 call 00000000 +[\t ]*0: R_PRU_U16_PMEMIMM[\t ]*myextfunc diff --git a/gas/testsuite/gas/pru/extern.s b/gas/testsuite/gas/pru/extern.s new file mode 100644 index 00000000000..87380df732c --- /dev/null +++ b/gas/testsuite/gas/pru/extern.s @@ -0,0 +1,5 @@ +# Source file used to test text dump of U16_PMEMIMM relocation + + .extern myextfunc +foo: + call myextfunc diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 7751ef27b14..5e8ad9f7237 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2017-12-13 Dimitar Dimitrov + + * disassemble.c: Enable disassembler_needs_relocs for PRU. + 2017-12-11 Petr Pavlu Renlin Li diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c index 11206c67a5f..fa9a7653541 100644 --- a/opcodes/disassemble.c +++ b/opcodes/disassemble.c @@ -654,6 +654,11 @@ disassemble_init_for_target (struct disassemble_info * info) #ifdef ARCH_powerpc case bfd_arch_powerpc: #endif +#ifdef ARCH_pru + case bfd_arch_pru: + info->disassembler_needs_relocs = TRUE; + break; +#endif #ifdef ARCH_rs6000 case bfd_arch_rs6000: #endif