1# RUN: yaml2obj %s -o %t 2# RUN: llvm-jitlink -noexec -check %s %t 3# 4# Check IMAGE_REL_AMD64_REL32_4 relocation correctly calculates the 5# delta between target and next_pc despite the existance of 4 bytes immediate field. 6# 7# jitlink-check: decode_operand(main, 3) = func - next_pc(main) 8--- !COFF 9header: 10 Machine: IMAGE_FILE_MACHINE_AMD64 11 Characteristics: [ ] 12sections: 13 - Name: .text 14 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 15 Alignment: 16 16# The disassembly of main block data is: 17# 0: f7 05 00 00 00 00 00 00 00 00 testl $0, (%rip) 18# 0000000000000002: IMAGE_REL_AMD64_REL32_4 func 19# a: e8 00 00 00 00 callq 0xf <main+0xf> 20# 000000000000000b: IMAGE_REL_AMD64_REL32 func 21# f: c3 retq 22 SectionData: F7050000000000000000E800000000C3C3 23 Relocations: 24 - VirtualAddress: 2 25 SymbolName: func 26 Type: IMAGE_REL_AMD64_REL32_4 27 - VirtualAddress: 11 28 SymbolName: func 29 Type: IMAGE_REL_AMD64_REL32 30 - Name: .data 31 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 32 Alignment: 4 33 SectionData: '' 34 - Name: .bss 35 Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 36 Alignment: 4 37 SectionData: '' 38 SizeOfRawData: 0 39symbols: 40 - Name: .text 41 Value: 0 42 SectionNumber: 1 43 SimpleType: IMAGE_SYM_TYPE_NULL 44 ComplexType: IMAGE_SYM_DTYPE_NULL 45 StorageClass: IMAGE_SYM_CLASS_STATIC 46 SectionDefinition: 47 Length: 17 48 NumberOfRelocations: 1 49 NumberOfLinenumbers: 0 50 CheckSum: 1443257137 51 Number: 1 52 - Name: .data 53 Value: 0 54 SectionNumber: 2 55 SimpleType: IMAGE_SYM_TYPE_NULL 56 ComplexType: IMAGE_SYM_DTYPE_NULL 57 StorageClass: IMAGE_SYM_CLASS_STATIC 58 SectionDefinition: 59 Length: 0 60 NumberOfRelocations: 0 61 NumberOfLinenumbers: 0 62 CheckSum: 0 63 Number: 2 64 - Name: .bss 65 Value: 0 66 SectionNumber: 3 67 SimpleType: IMAGE_SYM_TYPE_NULL 68 ComplexType: IMAGE_SYM_DTYPE_NULL 69 StorageClass: IMAGE_SYM_CLASS_STATIC 70 SectionDefinition: 71 Length: 0 72 NumberOfRelocations: 0 73 NumberOfLinenumbers: 0 74 CheckSum: 0 75 Number: 3 76 - Name: main 77 Value: 0 78 SectionNumber: 1 79 SimpleType: IMAGE_SYM_TYPE_NULL 80 ComplexType: IMAGE_SYM_DTYPE_FUNCTION 81 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 82 - Name: func 83 Value: 16 84 SectionNumber: 1 85 SimpleType: IMAGE_SYM_TYPE_NULL 86 ComplexType: IMAGE_SYM_DTYPE_FUNCTION 87 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 88 89