1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/test/MC/ARM/eh-link.s
Rafael Espindola 2375592ce3 Write sections mostly in one pass.
During ELF writing, there is no need to further relax the sections, so we
should not be creating fragments. This patch avoids doing so in all cases
but debug section compression (that is next).

Also, the ELF format is fairly simple to write. We can do a single pass over
the sections to write them out and compute the section header table.

llvm-svn: 236235
2015-04-30 14:21:49 +00:00

91 lines
2.2 KiB
ArmAsm

@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s | FileCheck %s
@ Test that the ARM_EXIDX sections point (Link) to the corresponding text
@ sections.
@ FIXME: The section numbers are not important. If llvm-readobj printed the
@ name first we could use a FileCheck variable.
@ CHECK: Section {
@ CHECK: Index: 6
@ CHECK-NEXT: Name: .text
@ CHECK-NEXT: Type: SHT_PROGBITS
@ CHECK-NEXT: Flags [
@ CHECK-NEXT: SHF_ALLOC
@ CHECK-NEXT: SHF_EXECINSTR
@ CHECK-NEXT: SHF_GROUP
@ CHECK-NEXT: ]
@ CHECK-NEXT: Address: 0x0
@ CHECK-NEXT: Offset:
@ CHECK-NEXT: Size: 4
@ CHECK-NEXT: Link: 0
@ CHECK-NEXT: Info: 0
@ CHECK-NEXT: AddressAlignment: 1
@ CHECK-NEXT: EntrySize: 0
@ CHECK-NEXT: }
@ CHECK-NEXT: Section {
@ CHECK-NEXT: Index: 7
@ CHECK-NEXT: Name: .ARM.exidx
@ CHECK-NEXT: Type: SHT_ARM_EXIDX
@ CHECK-NEXT: Flags [
@ CHECK-NEXT: SHF_ALLOC
@ CHECK-NEXT: SHF_GROUP
@ CHECK-NEXT: SHF_LINK_ORDER
@ CHECK-NEXT: ]
@ CHECK-NEXT: Address: 0x0
@ CHECK-NEXT: Offset:
@ CHECK-NEXT: Size: 8
@ CHECK-NEXT: Link: 6
@ CHECK-NEXT: Info: 0
@ CHECK-NEXT: AddressAlignment: 4
@ CHECK-NEXT: EntrySize: 0
@ CHECK-NEXT: }
@ CHECK: Section {
@ CHECK: Index: 10
@ CHECK-NEXT: Name: .text
@ CHECK-NEXT: Type: SHT_PROGBITS
@ CHECK-NEXT: Flags [
@ CHECK-NEXT: SHF_ALLOC
@ CHECK-NEXT: SHF_EXECINSTR
@ CHECK-NEXT: SHF_GROUP
@ CHECK-NEXT: ]
@ CHECK-NEXT: Address: 0x0
@ CHECK-NEXT: Offset:
@ CHECK-NEXT: Size: 4
@ CHECK-NEXT: Link: 0
@ CHECK-NEXT: Info: 0
@ CHECK-NEXT: AddressAlignment: 1
@ CHECK-NEXT: EntrySize: 0
@ CHECK-NEXT: }
@ CHECK-NEXT: Section {
@ CHECK-NEXT: Index: 11
@ CHECK-NEXT: Name: .ARM.exidx
@ CHECK-NEXT: Type: SHT_ARM_EXIDX
@ CHECK-NEXT: Flags [
@ CHECK-NEXT: SHF_ALLOC
@ CHECK-NEXT: SHF_GROUP
@ CHECK-NEXT: SHF_LINK_ORDER
@ CHECK-NEXT: ]
@ CHECK-NEXT: Address: 0x0
@ CHECK-NEXT: Offset:
@ CHECK-NEXT: Size: 8
@ CHECK-NEXT: Link: 10
@ CHECK-NEXT: Info: 0
@ CHECK-NEXT: AddressAlignment: 4
@ CHECK-NEXT: EntrySize: 0
@ CHECK-NEXT: }
.section .text,"axG",%progbits,f,comdat
f:
.fnstart
mov pc, lr
.fnend
.section .text,"axG",%progbits,g,comdat
g:
.fnstart
mov pc, lr
.fnend