forked from OSchip/llvm-project
109 lines
3.9 KiB
YAML
109 lines
3.9 KiB
YAML
# REQUIRES: arm
|
|
# RUN: yaml2obj %s -o %t.obj
|
|
# RUN: lld-link %t.obj %p/Inputs/library.lib /subsystem:console \
|
|
# RUN: /entry:mainCRTStartup /alternatename:__delayLoadHelper2=mainCRTStartup \
|
|
# RUN: /delayload:library.dll /out:%t.exe
|
|
# RUN: llvm-readobj --coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s
|
|
# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s
|
|
# RUN: llvm-objdump -d %t.exe | FileCheck --check-prefix=DISASM %s
|
|
|
|
# IMPORT: Format: COFF-ARM
|
|
# IMPORT-NEXT: Arch: thumb
|
|
# IMPORT-NEXT: AddressSize: 32bit
|
|
# IMPORT-NEXT: DelayImport {
|
|
# IMPORT-NEXT: Name: library.dll
|
|
# IMPORT-NEXT: Attributes: 0x1
|
|
# IMPORT-NEXT: ModuleHandle: 0x3000
|
|
# IMPORT-NEXT: ImportAddressTable: 0x3008
|
|
# IMPORT-NEXT: ImportNameTable: 0x2040
|
|
# IMPORT-NEXT: BoundDelayImportTable: 0x0
|
|
# IMPORT-NEXT: UnloadDelayImportTable: 0x0
|
|
# IMPORT-NEXT: Import {
|
|
# IMPORT-NEXT: Symbol: function (0)
|
|
# IMPORT-NEXT: Address: 0x40100D
|
|
# IMPORT-NEXT: }
|
|
# IMPORT-NEXT: }
|
|
#
|
|
# BASEREL: BaseReloc [
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: ARM_MOV32(T)
|
|
# BASEREL-NEXT: Address: 0x1000
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: ARM_MOV32(T)
|
|
# BASEREL-NEXT: Address: 0x100C
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: ARM_MOV32(T)
|
|
# BASEREL-NEXT: Address: 0x1026
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: ABSOLUTE
|
|
# BASEREL-NEXT: Address: 0x1000
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: HIGHLOW
|
|
# BASEREL-NEXT: Address: 0x3008
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: Entry {
|
|
# BASEREL-NEXT: Type: ABSOLUTE
|
|
# BASEREL-NEXT: Address: 0x3000
|
|
# BASEREL-NEXT: }
|
|
# BASEREL-NEXT: ]
|
|
#
|
|
# DISASM: 00401000 <.text>:
|
|
# DISASM: 40100c: 43 f2 08 0c movw r12, #12296
|
|
# DISASM-NEXT: c0 f2 40 0c movt r12, #64
|
|
# DISASM-NEXT: 00 f0 00 b8 b.w {{.+}} @ imm = #0
|
|
# DISASM-NEXT: 2d e9 0f 48 push.w {r0, r1, r2, r3, r11, lr}
|
|
# DISASM-NEXT: 0d f2 10 0b addw r11, sp, #16
|
|
# DISASM-NEXT: 2d ed 10 0b vpush {d0, d1, d2, d3, d4, d5, d6, d7}
|
|
# DISASM-NEXT: 61 46 mov r1, r12
|
|
# DISASM-NEXT: 42 f2 00 00 movw r0, #8192
|
|
# DISASM-NEXT: c0 f2 40 00 movt r0, #64
|
|
# DISASM-NEXT: ff f7 e7 ff bl 0x401000 <.text>
|
|
# DISASM-NEXT: 84 46 mov r12, r0
|
|
# DISASM-NEXT: bd ec 10 0b vpop {d0, d1, d2, d3, d4, d5, d6, d7}
|
|
# DISASM-NEXT: bd e8 0f 48 pop.w {r0, r1, r2, r3, r11, lr}
|
|
# DISASM-NEXT: 60 47 bx r12
|
|
|
|
--- !COFF
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_ARMNT
|
|
Characteristics: [ ]
|
|
sections:
|
|
- Name: .text
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_PURGEABLE, IMAGE_SCN_MEM_16BIT, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
Alignment: 4
|
|
SectionData: 40F20000C0F2000000680047
|
|
Relocations:
|
|
- VirtualAddress: 0
|
|
SymbolName: __imp_function
|
|
Type: IMAGE_REL_ARM_MOV32T
|
|
symbols:
|
|
- Name: .text
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
SectionDefinition:
|
|
Length: 12
|
|
NumberOfRelocations: 1
|
|
NumberOfLinenumbers: 0
|
|
CheckSum: 0
|
|
Number: 1
|
|
- Name: mainCRTStartup
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
- Name: __imp_function
|
|
Value: 0
|
|
SectionNumber: 0
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
...
|