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.
This commit is contained in:
Dimitar Dimitrov 2017-12-13 13:08:50 +00:00 committed by Nick Clifton
parent 10e7c0457c
commit 024d185c10
5 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-12-13 Dimitar Dimitrov <dimitar@dinux.eu>
* 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 <amodra@gmail.com>
PR 21118

View File

@ -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 <myextfunc>
[\t ]*0: R_PRU_U16_PMEMIMM[\t ]*myextfunc

View File

@ -0,0 +1,5 @@
# Source file used to test text dump of U16_PMEMIMM relocation
.extern myextfunc
foo:
call myextfunc

View File

@ -1,3 +1,7 @@
2017-12-13 Dimitar Dimitrov <dimitar@dinux.eu>
* disassemble.c: Enable disassembler_needs_relocs for PRU.
2017-12-11 Petr Pavlu <petr.pavlu@arm.com>
Renlin Li <renlin.li@arm.com>

View File

@ -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