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