104 lines
3.1 KiB
Text
104 lines
3.1 KiB
Text
# RUN: yaml2obj -DELFCLASS=ELFCLASS32 -o %t.32.o %s
|
|
# RUN: llvm-jitlink -noexec -check %s %t.32.o
|
|
# RUN: yaml2obj -DELFCLASS=ELFCLASS64 -o %t.64.o %s
|
|
# RUN: llvm-jitlink -noexec -check %s %t.64.o
|
|
|
|
### Compiled from the following code with -mattr=+relax to force relocations for
|
|
### address_range and DW_CFA_advance_loc (both needed for .balign).
|
|
## .text
|
|
## .globl main
|
|
## .p2align 1
|
|
## .type main,@function
|
|
## main:
|
|
## .cfi_startproc
|
|
## .balign 8
|
|
## addi sp, sp, -16
|
|
## cfa_advance_loc:
|
|
## .cfi_def_cfa_offset 16
|
|
## nop
|
|
## main_end:
|
|
## .size main, main_end-main
|
|
## .cfi_endproc
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: [[ELFCLASS]]
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_RISCV
|
|
SectionHeaderStringTable: .strtab
|
|
Sections:
|
|
- Name: .text
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
|
AddressAlign: 0x8
|
|
Content: 13000000130101FF13000000
|
|
- Name: .eh_frame
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_ALLOC ]
|
|
AddressAlign: 0x8
|
|
Content: 1000000000000000017A5200017801011B0C02001000000018000000000000000000000000400E10
|
|
- Name: .rela.text
|
|
Type: SHT_RELA
|
|
Flags: [ SHF_INFO_LINK ]
|
|
Link: .symtab
|
|
AddressAlign: 0x8
|
|
Info: .text
|
|
Relocations:
|
|
- Type: R_RISCV_ALIGN
|
|
Addend: 4
|
|
- Name: .rela.eh_frame
|
|
Type: SHT_RELA
|
|
Flags: [ SHF_INFO_LINK ]
|
|
Link: .symtab
|
|
AddressAlign: 0x8
|
|
Info: .eh_frame
|
|
Relocations:
|
|
- Offset: 0x1C
|
|
Symbol: main
|
|
Type: R_RISCV_32_PCREL
|
|
- Offset: 0x20
|
|
Symbol: main_end
|
|
Type: R_RISCV_ADD32
|
|
- Offset: 0x20
|
|
Symbol: main
|
|
Type: R_RISCV_SUB32
|
|
- Offset: 0x25
|
|
Symbol: cfa_advance_loc
|
|
Type: R_RISCV_SET6
|
|
- Offset: 0x25
|
|
Symbol: main
|
|
Type: R_RISCV_SUB6
|
|
- Type: SectionHeaderTable
|
|
Sections:
|
|
- Name: .strtab
|
|
- Name: .text
|
|
- Name: .rela.text
|
|
- Name: .eh_frame
|
|
- Name: .rela.eh_frame
|
|
- Name: .symtab
|
|
Symbols:
|
|
- Name: cfa_advance_loc
|
|
Section: .text
|
|
Value: 0x8
|
|
- Name: main_end
|
|
Section: .text
|
|
Value: 0xC
|
|
- Name: main
|
|
Type: STT_FUNC
|
|
Section: .text
|
|
Binding: STB_GLOBAL
|
|
Size: 0xC
|
|
- Name: eh_frame
|
|
Type: STT_SECTION
|
|
Binding: STB_GLOBAL
|
|
Section: .eh_frame
|
|
Size: 0x28
|
|
...
|
|
|
|
## CIE_pointer
|
|
# jitlink-check: *{4}(eh_frame + 0x1c) = main - (eh_frame + 0x1c)
|
|
## address_range
|
|
# jitlink-check: *{4}(eh_frame + 0x20) = main_end - main
|
|
## DW_CFA_advance_loc
|
|
# jitlink-check: (*{1}(eh_frame + 0x25)) & 0x3f = cfa_advance_loc - main
|