blob: 804ed97a273714a16977a4fa3841e92c8df5970f [file]
## Test certain REL relocation types generated by legacy armasm.
# RUN: yaml2obj %s -o %t.o
# RUN: ld.lld %t.o -o %t
# RUN: llvm-objdump -s %t | FileCheck %s
# CHECK: Contents of section .abs:
# CHECK-NEXT: [[#%x,]] 29002800 00002700 00000000 0000fcff ).(...'.........
# CHECK-NEXT: [[#%x,]] ffffffff ffff ......
# CHECK-NEXT: Contents of section .uabs:
# CHECK-NEXT: [[#%x,]] 40ffffff 40ffffff 20ffffff 20ffffff @...@... ... ...
# CHECK-NEXT: [[#%x,]] 00ffffff 00ffffff ........
# CHECK-NEXT: Contents of section .prel:
# CHECK-NEXT: [[#%x,]] 00ffffff fcfeffff f8feffff a0ffffff ................
# CHECK-NEXT: [[#%x,]] 0010009f 0010009f ........
# CHECK-NEXT: Contents of section .branch:
# CHECK-NEXT: [[#%x,]] f0ffffff f0ffffff fdffffff fcffff14 ................
---
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_AARCH64
Sections:
- Name: .abs
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
Content: fffffefffffffdfffffffffffffffcffffffffffffff
- Name: .rel.abs
Type: SHT_REL
Link: .symtab
Info: .abs
Relocations:
- {Offset: 0, Symbol: abs, Type: R_AARCH64_ABS16}
- {Offset: 2, Symbol: abs, Type: R_AARCH64_ABS32}
- {Offset: 6, Symbol: abs, Type: R_AARCH64_ABS64}
- {Offset: 14, Symbol: abs, Type: R_AARCH64_ADD_ABS_LO12_NC}
- Name: .uabs
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
AddressAlign: 4
Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff
- Name: .rel.uabs
Type: SHT_REL
Link: .symtab
Info: .uabs
Relocations:
- {Offset: 0, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0}
- {Offset: 4, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0_NC}
- {Offset: 8, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1}
- {Offset: 12, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1_NC}
- {Offset: 16, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2}
- {Offset: 20, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2_NC}
- Name: .prel
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
AddressAlign: 4
Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff
- Name: .rel.prel
Type: SHT_REL
Link: .symtab
Info: .prel
Relocations:
- {Offset: 0, Symbol: .prel, Type: R_AARCH64_PREL64}
- {Offset: 4, Symbol: .prel, Type: R_AARCH64_PREL32}
- {Offset: 8, Symbol: .prel, Type: R_AARCH64_PREL16}
- {Offset: 12, Symbol: .prel, Type: R_AARCH64_LD_PREL_LO19}
- {Offset: 16, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21}
- {Offset: 20, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21_NC}
- Name: .branch
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC ]
AddressAlign: 4
Content: f0fffffff0fffffff0fffffff0ffffff
- Name: .rel.branch
Type: SHT_REL
Link: .symtab
Info: .branch
Relocations:
- {Offset: 0, Symbol: .branch, Type: R_AARCH64_TSTBR14}
- {Offset: 4, Symbol: .branch, Type: R_AARCH64_CONDBR19}
- {Offset: 8, Symbol: .branch, Type: R_AARCH64_CALL26}
- {Offset: 12, Symbol: .branch, Type: R_AARCH64_JUMP26}
Symbols:
- Name: .branch
Section: .branch
- Name: .prel
Section: .prel
- Name: abs
Index: SHN_ABS
Value: 42
Binding: STB_GLOBAL