xref: /llvm-project/llvm/test/MC/Mips/coff-relocs.ll (revision be68f35bf55baf6150180170ec17371f0be90689)
1d8a5fae6SHervé Poussineau; RUN: llc -mtriple mipsel-windows -filetype=obj < %s | obj2yaml | FileCheck %s
2d8a5fae6SHervé Poussineau
3d8a5fae6SHervé Poussineau; CHECK:  Machine:         IMAGE_FILE_MACHINE_R4000
4d8a5fae6SHervé Poussineau
5d8a5fae6SHervé Poussineau
6d8a5fae6SHervé Poussineau
7d8a5fae6SHervé Poussineau; CHECK:  - Name:            .text
8d8a5fae6SHervé Poussineau; CHECK:    Relocations:
9d8a5fae6SHervé Poussineau
10d8a5fae6SHervé Poussineaudeclare void @bar()
11d8a5fae6SHervé Poussineaudefine i32 @foo_jmp() {
12d8a5fae6SHervé Poussineau  call i32 @bar()
13d8a5fae6SHervé Poussineau; CHECK:      - VirtualAddress:  8
14d8a5fae6SHervé Poussineau; CHECK:        SymbolName:      bar
15d8a5fae6SHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_JMPADDR
16d8a5fae6SHervé Poussineau  ret i32 0
17d8a5fae6SHervé Poussineau}
18d8a5fae6SHervé Poussineau
19d8a5fae6SHervé Poussineau@var = external global i32
20d8a5fae6SHervé Poussineaudefine i32 @foo_var() {
21d8a5fae6SHervé Poussineau  %1 = load i32, i32* @var
22d8a5fae6SHervé Poussineau; CHECK:      - VirtualAddress:  32
23d8a5fae6SHervé Poussineau; CHECK:        SymbolName:      var
24d8a5fae6SHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_REFHI
253b67383cSHervé Poussineau; CHECK:      - VirtualAddress:  32
263b67383cSHervé Poussineau; CHECK:        SymbolName:      .text
273b67383cSHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_PAIR
28d8a5fae6SHervé Poussineau; CHECK:      - VirtualAddress:  40
29d8a5fae6SHervé Poussineau; CHECK:        SymbolName:      var
30d8a5fae6SHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_REFLO
31d8a5fae6SHervé Poussineau  ret i32 %1
32d8a5fae6SHervé Poussineau}
33d8a5fae6SHervé Poussineau
34d8a5fae6SHervé Poussineau
35d8a5fae6SHervé Poussineau
36d8a5fae6SHervé Poussineau; CHECK:  - Name:            .data
37d8a5fae6SHervé Poussineau; CHECK:    Relocations:
38d8a5fae6SHervé Poussineau
39d8a5fae6SHervé Poussineau%struct._PTR = type { ptr }
40d8a5fae6SHervé Poussineau
41d8a5fae6SHervé Poussineau@var1 = internal global %struct._PTR { ptr @var2 }
42d8a5fae6SHervé Poussineau@var2 = external global i32
43d8a5fae6SHervé Poussineau; CHECK:      - VirtualAddress:  0
44d8a5fae6SHervé Poussineau; CHECK:        SymbolName:      var2
45d8a5fae6SHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_REFWORD
46*be68f35bSHervé Poussineau
47*be68f35bSHervé Poussineau
48*be68f35bSHervé Poussineau
49*be68f35bSHervé Poussineau
50*be68f35bSHervé Poussineau; CHECK:  - Name:            '.debug$S'
51*be68f35bSHervé Poussineau; CHECK:    Relocations:
52*be68f35bSHervé Poussineau
53*be68f35bSHervé Poussineau!llvm.dbg.cu = !{!0}
54*be68f35bSHervé Poussineau!llvm.module.flags = !{!2, !3, !4}
55*be68f35bSHervé Poussineau
56*be68f35bSHervé Poussineau!0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, emissionKind: FullDebug)
57*be68f35bSHervé Poussineau!1 = !DIFile(filename: "dummy.c", directory: "/tmp/private")
58*be68f35bSHervé Poussineau!2 = !{i32 2, !"CodeView", i32 1}
59*be68f35bSHervé Poussineau!3 = !{i32 2, !"Debug Info Version", i32 3}
60*be68f35bSHervé Poussineau!4 = !{i32 1, !"wchar_size", i32 2}
61*be68f35bSHervé Poussineau!5 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !6, scopeLine: 2, spFlags: DISPFlagDefinition, unit: !0)
62*be68f35bSHervé Poussineau!6 = !DISubroutineType(types: !7)
63*be68f35bSHervé Poussineau!7 = !{null}
64*be68f35bSHervé Poussineau!8 = !DILocation(line: 3, scope: !5)
65*be68f35bSHervé Poussineau
66*be68f35bSHervé Poussineaudefine dso_local void @foo_dbg() #0 !dbg !5 {
67*be68f35bSHervé Poussineau  ret void, !dbg !8
68*be68f35bSHervé Poussineau; CHECK:      - VirtualAddress:  92
69*be68f35bSHervé Poussineau; CHECK:        SymbolName:      foo_dbg
70*be68f35bSHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_SECREL
71*be68f35bSHervé Poussineau; CHECK:      - VirtualAddress:  96
72*be68f35bSHervé Poussineau; CHECK:        SymbolName:      foo_dbg
73*be68f35bSHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_SECTION
74*be68f35bSHervé Poussineau; CHECK:      - VirtualAddress:  148
75*be68f35bSHervé Poussineau; CHECK:        SymbolName:      foo_dbg
76*be68f35bSHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_SECREL
77*be68f35bSHervé Poussineau; CHECK:      - VirtualAddress:  152
78*be68f35bSHervé Poussineau; CHECK:        SymbolName:      foo_dbg
79*be68f35bSHervé Poussineau; CHECK:        Type:            IMAGE_REL_MIPS_SECTION
80*be68f35bSHervé Poussineau}
81*be68f35bSHervé Poussineau
82