mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 22:58:50 +00:00
6825fd33b8
X86_64 COFF only has support for 32 bit pcrel relocations. Produce an error on all others. Note that gnu as has extended the relocation values to support this. It is not clear if we should support the gnu extension. llvm-svn: 306082
108 lines
2.9 KiB
ArmAsm
108 lines
2.9 KiB
ArmAsm
// Verify the .fix data section conveys the right offsets and the right relocations
|
|
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o - | llvm-readobj -relocations -expand-relocs -sections -section-data | FileCheck %s --check-prefix=READOBJ
|
|
|
|
.text
|
|
.section .rdata,"dr"
|
|
.globl g1 # @g1
|
|
.align 4
|
|
g1:
|
|
.long 1 # 0x1
|
|
|
|
.globl g2 # @g2
|
|
.align 4
|
|
g2:
|
|
.long 2 # 0x2
|
|
|
|
.globl g3 # @g3
|
|
.align 4
|
|
g3:
|
|
.long 3 # 0x3
|
|
|
|
.globl g4 # @g4
|
|
.align 4
|
|
g4:
|
|
.long 4 # 0x4
|
|
|
|
.section .fix,"dw"
|
|
.globl t1 # @t1
|
|
.align 8
|
|
t1:
|
|
|
|
.globl t2 # @t2
|
|
.align 8
|
|
t2:
|
|
|
|
.globl t3 # @t3
|
|
.align 8
|
|
t3:
|
|
|
|
.globl t4 # @t4
|
|
.align 4
|
|
t4:
|
|
.long g3-t4
|
|
|
|
.globl t5 # @t5
|
|
.align 4
|
|
t5:
|
|
.long g3@IMGREL
|
|
|
|
.globl t6 # @t6
|
|
.align 16
|
|
t6:
|
|
.ascii "\001\002"
|
|
.zero 6
|
|
.quad 256 # 0x100
|
|
.long g3-(t6+16)
|
|
.zero 4
|
|
|
|
.long foobar - .
|
|
|
|
// READOBJ: Section {
|
|
// READOBJ: Number:
|
|
// READOBJ: Name: .fix (2E 66 69 78 00 00 00 00)
|
|
// READOBJ-NEXT: VirtualSize: 0x0
|
|
// READOBJ-NEXT: VirtualAddress: 0x0
|
|
// READOBJ-NEXT: RawDataSize:
|
|
// READOBJ-NEXT: PointerToRawData: 0xEC
|
|
// READOBJ-NEXT: PointerToRelocations:
|
|
// READOBJ-NEXT: PointerToLineNumbers: 0x0
|
|
// READOBJ-NEXT: RelocationCount:
|
|
// READOBJ-NEXT: LineNumberCount: 0
|
|
// READOBJ-NEXT: Characteristics [ (0xC0500040)
|
|
// READOBJ-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000)
|
|
// READOBJ-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40)
|
|
// READOBJ-NEXT: IMAGE_SCN_MEM_READ (0x40000000)
|
|
// READOBJ-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000)
|
|
// READOBJ-NEXT: ]
|
|
// READOBJ-NEXT: SectionData (
|
|
// READOBJ-NEXT: 0000: 04000000 00000000 00000000 00000000 |
|
|
// READOBJ-NEXT: 0010: 01020000 00000000 00010000 00000000 |
|
|
// READOBJ-NEXT: 0020: 04000000 00000000 04000000 |
|
|
// READOBJ-NEXT: )
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: ]
|
|
// READOBJ-NEXT: Relocations [
|
|
// READOBJ-NEXT: Section (5) .fix {
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x0
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x4
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_ADDR32NB (3)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x20
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x28
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: foobar
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT:]
|