xref: /llvm-project/llvm/test/ExecutionEngine/JITLink/x86-64/COFF_rel32_4_reloc.test (revision 8ad75c1037289b06bd1b95ff445797d380d93039)
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