binutils-gdb/ld/testsuite/ld-powerpc/pcrelopt.d
Alan Modra c3f72de4f5 PowerPC disassembly of pcrel references
This adds some annotation to Power10 pcrel instructions, displaying
the target address (ie. pc + D34 field) plus a symbol if there is one
at exactly that target address.  pld from the .got or .plt will also
look up the entry and display it, symbolically if there is a dynamic
relocation on the entry.

include/
	* dis-asm.h (struct disassemble_info): Add dynrelbuf and dynrelcount.
binutils/
	* objdump.c (struct objdump_disasm_info): Delete dynrelbuf and
	dynrelcount.
	(find_symbol_for_address): Adjust for dynrelbuf and dynrelcount move.
	(disassemble_section, disassemble_data): Likewise.
opcodes/
	* ppc-dis.c (struct dis_private): Add "special".
	(POWERPC_DIALECT): Delete.  Replace uses with..
	(private_data): ..this.  New inline function.
	(disassemble_init_powerpc): Init "special" names.
	(skip_optional_operands): Add is_pcrel arg, set when detecting R
	field of prefix instructions.
	(bsearch_reloc, print_got_plt): New functions.
	(print_insn_powerpc): For pcrel instructions, print target address
	and symbol if known, and decode plt and got loads too.
gas/
	* testsuite/gas/ppc/prefix-pcrel.d: Update expected output.
	* testsuite/gas/ppc/prefix-reloc.d: Likewise.
	* gas/testsuite/gas/ppc/vsx_32byte.d: Likewise.
ld/
	* testsuite/ld-powerpc/inlinepcrel-1.d: Update expected output.
	* testsuite/ld-powerpc/inlinepcrel-2.d: Likewise.
	* testsuite/ld-powerpc/notoc2.d: Likewise.
	* testsuite/ld-powerpc/notoc3.d: Likewise.
	* testsuite/ld-powerpc/pcrelopt.d: Likewise.
	* testsuite/ld-powerpc/startstop.d: Likewise.
	* testsuite/ld-powerpc/tlsget.d: Likewise.
	* testsuite/ld-powerpc/tlsget2.d: Likewise.
	* testsuite/ld-powerpc/tlsld.d: Likewise.
	* testsuite/ld-powerpc/weak1.d: Likewise.
	* testsuite/ld-powerpc/weak1so.d: Likewise.
2021-04-09 16:56:43 +09:30

109 lines
4.3 KiB
Makefile

.*: file format .*
Disassembly of section \.text:
0+10000200 <_start>:
.*: (06 10 00 01|01 00 10 06) plbz r3,66320 # .* <sym>
.*: (88 60 03 10|10 03 60 88)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) plhz r4,66308 # .* <sym>
.*: (a0 80 03 04|04 03 80 a0)
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) plha r3,66288 # .* <sym>
.*: (a8 60 02 f0|f0 02 60 a8)
.*: (40 82 ff f4|f4 ff 82 40) bne .*
.*: (06 10 00 01|01 00 10 06) plwz r3,66276 # .* <sym>
.*: (80 60 02 e4|e4 02 60 80)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plwa r3,66264 # .* <sym>
.*: (a4 60 02 d8|d8 02 60 a4)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pld r3,66252 # .* <sym>
.*: (e4 60 02 cc|cc 02 60 e4)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plq r14,66240 # .* <sym>
.*: (e1 c0 02 c0|c0 02 c0 e1)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) plfs f1,66228 # .* <sym>
.*: (c0 20 02 b4|b4 02 20 c0)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) plfd f1,66216 # .* <sym>
.*: (c8 20 02 a8|a8 02 20 c8)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plxsd v30,66204 # .* <sym>
.*: (ab c0 02 9c|9c 02 c0 ab)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plxssp v31,66192 # .* <sym>
.*: (af e0 02 90|90 02 e0 af)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plxv vs63,66180 # .* <sym>
.*: (cf e0 02 84|84 02 e0 cf)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plxv vs0,66168 # .* <sym>
.*: (c8 00 02 78|78 02 00 c8)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) pstb r3,66156 # .* <sym>
.*: (98 60 02 6c|6c 02 60 98)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) psth r3,66144 # .* <sym>
.*: (b0 60 02 60|60 02 60 b0)
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) pstw r3,66128 # .* <sym>
.*: (90 60 02 50|50 02 60 90)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstd r3,66116 # .* <sym>
.*: (f4 60 02 44|44 02 60 f4)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstq r14,66104 # .* <sym>
.*: (f1 c0 02 38|38 02 c0 f1)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) pstfd f1,66092 # .* <sym>
.*: (d8 20 02 2c|2c 02 20 d8)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) pstfs f2,66080 # .* <sym>
.*: (d0 40 02 20|20 02 40 d0)
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxsd v30,66064 # .* <sym>
.*: (bb c0 02 10|10 02 c0 bb)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxssp v31,66052 # .* <sym>
.*: (bf e0 02 04|04 02 e0 bf)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxv vs63,66040 # .* <sym>
.*: (df e0 01 f8|f8 01 e0 df)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxv vs0,66028 # .* <sym>
.*: (d8 00 01 ec|ec 01 00 d8)
.*: (60 00 00 00|00 00 00 60) nop
.*: (06 10 00 01|01 00 10 06) plbz r3,70676 # 10011744
.*: (88 60 14 14|14 14 60 88)
.*: (60 00 00 00|00 00 00 60) nop
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 12 35|35 12 10 04) plq r4,305485896 # 22355b88
.*: (e0 80 58 48|48 58 80 e0)
.*: (07 00 00 00|00 00 00 07) pnop
.*: (00 00 00 00|00 00 00 00)
.*: (04 10 00 01|01 00 10 04) pld r9,65976 # 10010508 \[i@got\]
.*: (e5 20 01 b8|b8 01 20 e5)
.*: (e8 09 00 00|00 00 09 e8) ld r0,0\(r9\)
.*: (06 10 00 01|01 00 10 06) pla r7,65972 # .* <sym>
.*: (38 e0 01 b4|b4 01 e0 38)
.*: (88 c7 00 00|00 00 c7 88) lbz r6,0\(r7\)
.*: (04 10 00 01|01 00 10 04) plxvp vs62,65960 # .* <sym>
.*: (eb e0 01 a8|a8 01 e0 eb)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) plxvp vs0,65948 # .* <sym>
.*: (e8 00 01 9c|9c 01 00 e8)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxvp vs62,65936 # .* <sym>
.*: (fb e0 01 90|90 01 e0 fb)
.*: (60 00 00 00|00 00 00 60) nop
.*: (04 10 00 01|01 00 10 04) pstxvp vs0,65924 # .* <sym>
.*: (f8 00 01 84|84 01 00 f8)
.*: (60 00 00 00|00 00 00 60) nop