binutils-gdb/ld/testsuite/ld-aarch64/erratum843419.d
Jim Wilson 9a2ebffd4d Ensure 8-byte alignment for AArch64 stubs.
PR 22903
bfd	* elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Add 8 bytes for branch
	and nop instead of 4.
	(elfNN_arch64_build_stubs): Add nop after branch.  Increase size by
	8 instead of 4.

ld	* emultempl/aarch64elf.em (elf${ELFSIZE}_aarch64_add_stub_section):
	Give stub_sec 8 byte alignment.
	* emulparams/aarch64cloudabi.sh (NOP): Set to 0x1f2003d5.
	* emulparams/aarch64elf.sh (NOP): Likewise.
	* emulparams/aarch64elf32.sh (NOP): Likewise.
	* emulparams/aarch64fbsd.sh (NOP): Likewise.
	* emulparams/aarch64linux.sh (NOP): Likewise.
	* emulparams/aarch64linux32.sh (NOP): Likewise.
	* testsuite/ld-aarch64/erratum835769.d: Adjust for added nop.
	* testsuite/ld-aarch64/erratum843419.d: Likewise.
	* testsuite/ld-aarch64/farcall-b-defsym.d: Likewise.
	* testsuite/ld-aarch64/farcall-b-none-function.d: Likewise.
	* testsuite/ld-aarch64/farcall-b-plt.d: Likewise.
	* testsuite/ld-aarch64/farcall-b-section.d: Likewise.
	* testsuite/ld-aarch64/farcall-b.d: Likewise.
	* testsuite/ld-aarch64/farcall-back.d: Likewise.
	* testsuite/ld-aarch64/farcall-bl-defsym.d: Likewise.
	* testsuite/ld-aarch64/farcall-bl-none-function.d: Likewise.
	* testsuite/ld-aarch64/farcall-bl-plt.d: Likewise.
	* testsuite/ld-aarch64/farcall-bl-section.d: Likewise.
	* testsuite/ld-aarch64/farcall-bl.d: Likewise.
2018-03-02 10:49:20 +00:00

74 lines
2.4 KiB
Makefile

#source: erratum843419.s
#as:
#ld: --fix-cortex-a53-835769 --fix-cortex-a53-843419 -e0 --section-start .e843419=0x20000000 --section-start .e835769=0x3000000 -Ttext=0x400000 -Tdata=0x40000000
#objdump: -dr
#...
Disassembly of section .e843419:
0*20000000 <e843419>:
[ ]*20000000: d10043ff sub sp, sp, #0x10
[ ]*20000004: d28001a7 mov x7, #0xd // #13
[ ]*20000008: b9000fe7 str w7, \[sp, #12\]
[ ]*2000000c: 140003fb b 20000ff8 <e843419_1>
...
0*20000ff8 <e843419_1>:
[ ]*20000ff8: 90100000 adrp x0, 40000000 <[_a-zA-Z0-9]+>
[ ]*20000ffc: f800c007 stur x7, \[x0, #12\]
[ ]*20001000: d2800128 mov x8, #0x9 // #9
[ ]*20001004: 14000009 b 20001028 <e843419@0002_00000013_1004>
[ ]*20001008: 8b050020 add x0, x1, x5
[ ]*2000100c: b9400fe7 ldr w7, \[sp, #12\]
[ ]*20001010: 0b0700e0 add w0, w7, w7
[ ]*20001014: 910043ff add sp, sp, #0x10
[ ]*20001018: 14000006 b 20001030 <__e835769_veneer>
[ ]*2000101c: d65f03c0 ret
[ ]*20001020: 14000400 b 20002020 <__e835769_veneer\+0xff0>
[ ]*20001024: d503201f nop
0*20001028 <e843419@0002_00000013_1004>:
[ ]*20001028: f9000008 str x8, \[x0\]
[ ]*2000102c: 17fffff7 b 20001008 <e843419_1\+0x10>
0*20001030 <__e835769_veneer>:
[ ]*20001030: f0f17ff0 adrp x16, 3000000 <e835769>
[ ]*20001034: 91000210 add x16, x16, #0x0
[ ]*20001038: d61f0200 br x16
...
Disassembly of section .e835769:
0*3000000 <e835769>:
[ ]*3000000: b8408c87 ldr w7, \[x4, #8\]!
[ ]*3000004: 1b017c06 mul w6, w0, w1
[ ]*3000008: f9400084 ldr x4, \[x4\]
[ ]*300000c: 14000005 b 3000020 <__erratum_835769_veneer_0>
[ ]*3000010: aa0503e0 mov x0, x5
[ ]*3000014: d65f03c0 ret
[ ]*3000018: 14000400 b 3001018 <__erratum_835769_veneer_0\+0xff8>
[ ]*300001c: d503201f nop
0*3000020 <__erratum_835769_veneer_0>:
[ ]*3000020: 9b031845 madd x5, x2, x3, x6
[ ]*3000024: 17fffffb b 3000010 <e835769\+0x10>
...
Disassembly of section .text:
0*400000 <main>:
[ ]*400000: d10043ff sub sp, sp, #0x10
[ ]*400004: d28001a7 mov x7, #0xd // #13
[ ]*400008: b9000fe7 str w7, \[sp, #12\]
[ ]*40000c: 14000005 b 400020 <__e843419_veneer>
[ ]*400010: d65f03c0 ret
[ ]*400014: d503201f nop
[ ]*400018: 14000400 b 401018 <__e843419_veneer\+0xff8>
[ ]*40001c: d503201f nop
0*400020 <__e843419_veneer>:
[ ]*400020: 900fe010 adrp x16, 20000000 <e843419>
[ ]*400024: 91000210 add x16, x16, #0x0
[ ]*400028: d61f0200 br x16
...