From 024d185c10a48339ae06634d0738dd796a159cd8 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 13 Dec 2017 13:08:50 +0000 Subject: [PATCH] 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. --- gas/ChangeLog | 6 ++++++ gas/testsuite/gas/pru/extern.d | 10 ++++++++++ gas/testsuite/gas/pru/extern.s | 5 +++++ opcodes/ChangeLog | 4 ++++ opcodes/disassemble.c | 5 +++++ 5 files changed, 30 insertions(+) create mode 100644 gas/testsuite/gas/pru/extern.d create mode 100644 gas/testsuite/gas/pru/extern.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 99cd425..dcc4cb8 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 0000000..e06f758 --- /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 0000000..87380df --- /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 7751ef2..5e8ad9f 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 11206c6..fa9a765 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 -- 2.7.4