mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
c5e3a3641e
For these three relocations, 17 bit signed value should be used, instead of 16 bit. The bitsize field is changed from 16 to 17, this field in aarch64 backend is used for overflow check only. bfd/ 2016-02-26 Renlin Li <renlin.li@arm.com> * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2. ld/ 2016-02-26 Renlin Li <renlin.li@arm.com> * testsuite/ld-aarch64/aarch64-elf.exp: Run new testcases. * testsuite/ld-aarch64/emit-relocs-270.d: Update to use new boundary. * testsuite/ld-aarch64/emit-relocs-271.d: Likewise. * testsuite/ld-aarch64/emit-relocs-272.d: Likewise. * testsuite/ld-aarch64/emit-relocs-270-overflow.d: New. * testsuite/ld-aarch64/emit-relocs-270-overflow.s: New. * testsuite/ld-aarch64/emit-relocs-271-overflow.d: New. * testsuite/ld-aarch64/emit-relocs-271-overflow.s: New. * testsuite/ld-aarch64/emit-relocs-272-overflow.d: New. * testsuite/ld-aarch64/emit-relocs-272-overflow.s: New.
14 lines
528 B
Makefile
14 lines
528 B
Makefile
#source: emit-relocs-270.s
|
|
#ld: -T relocs.ld --defsym tempy=0xffff --defsym tempy2=0x4500 --defsym tempy3=-0x10000 -e0 --emit-relocs
|
|
#objdump: -dr
|
|
|
|
#...
|
|
+10000: 8a000000 and x0, x0, x0
|
|
+10004: 92400000 and x0, x0, #0x1
|
|
+10008: d29fffe4 mov x4, #0xffff // #65535
|
|
10008: R_AARCH64_MOVW_SABS_G0 tempy
|
|
+1000c: d288a007 mov x7, #0x4500 // #17664
|
|
1000c: R_AARCH64_MOVW_SABS_G0 tempy2
|
|
+10010: 929ffff1 mov x17, #0xffffffffffff0000 // #-65536
|
|
10010: R_AARCH64_MOVW_SABS_G0 tempy3
|