Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lld / test / ELF / emulation-x86.s
blob0fbb6f261bfba2a97118dc54ccd52a43e995f124
1 # REQUIRES: x86
2 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %tx64
3 # RUN: ld.lld -m elf_amd64_fbsd %tx64 -o %t2x64
4 # RUN: llvm-readobj --file-headers %t2x64 | FileCheck --check-prefix=AMD64 %s
5 # RUN: ld.lld %tx64 -o %t3x64
6 # RUN: llvm-readobj --file-headers %t3x64 | FileCheck --check-prefix=AMD64 %s
7 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.sysv
8 # RUN: ld.lld -m elf_amd64_fbsd %t.sysv -o %t.freebsd
9 # RUN: llvm-readobj --file-headers %t.freebsd | FileCheck --check-prefix=AMD64 %s
10 # RUN: echo 'OUTPUT_FORMAT(elf64-x86-64-freebsd)' > %t4x64.script
11 # RUN: ld.lld %t4x64.script %tx64 -o %t4x64
12 # RUN: llvm-readobj --file-headers %t4x64 | FileCheck --check-prefix=AMD64 %s
13 # AMD64: ElfHeader {
14 # AMD64-NEXT: Ident {
15 # AMD64-NEXT: Magic: (7F 45 4C 46)
16 # AMD64-NEXT: Class: 64-bit (0x2)
17 # AMD64-NEXT: DataEncoding: LittleEndian (0x1)
18 # AMD64-NEXT: FileVersion: 1
19 # AMD64-NEXT: OS/ABI: FreeBSD (0x9)
20 # AMD64-NEXT: ABIVersion: 0
21 # AMD64-NEXT: Unused: (00 00 00 00 00 00 00)
22 # AMD64-NEXT: }
23 # AMD64-NEXT: Type: Executable (0x2)
24 # AMD64-NEXT: Machine: EM_X86_64 (0x3E)
25 # AMD64-NEXT: Version: 1
26 # AMD64-NEXT: Entry:
27 # AMD64-NEXT: ProgramHeaderOffset: 0x40
28 # AMD64-NEXT: SectionHeaderOffset:
29 # AMD64-NEXT: Flags [ (0x0)
30 # AMD64-NEXT: ]
31 # AMD64-NEXT: HeaderSize: 64
32 # AMD64-NEXT: ProgramHeaderEntrySize: 56
33 # AMD64-NEXT: ProgramHeaderCount:
34 # AMD64-NEXT: SectionHeaderEntrySize: 64
35 # AMD64-NEXT: SectionHeaderCount:
36 # AMD64-NEXT: StringTableSectionIndex:
37 # AMD64-NEXT: }
39 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx64
40 # RUN: ld.lld -m elf_x86_64 %tx64 -o %t2x64
41 # RUN: llvm-readobj --file-headers %t2x64 | FileCheck --check-prefix=X86-64 %s
42 # RUN: ld.lld %tx64 -o %t3x64
43 # RUN: llvm-readobj --file-headers %t3x64 | FileCheck --check-prefix=X86-64 %s
44 # RUN: echo 'OUTPUT_FORMAT(elf64-x86-64)' > %t4x64.script
45 # RUN: ld.lld %t4x64.script %tx64 -o %t4x64
46 # RUN: ld.lld %tx64 -o %t4x64 %t4x64.script
47 # RUN: llvm-readobj --file-headers %t4x64 | FileCheck --check-prefix=X86-64 %s
48 # X86-64: ElfHeader {
49 # X86-64-NEXT: Ident {
50 # X86-64-NEXT: Magic: (7F 45 4C 46)
51 # X86-64-NEXT: Class: 64-bit (0x2)
52 # X86-64-NEXT: DataEncoding: LittleEndian (0x1)
53 # X86-64-NEXT: FileVersion: 1
54 # X86-64-NEXT: OS/ABI: SystemV (0x0)
55 # X86-64-NEXT: ABIVersion: 0
56 # X86-64-NEXT: Unused: (00 00 00 00 00 00 00)
57 # X86-64-NEXT: }
58 # X86-64-NEXT: Type: Executable (0x2)
59 # X86-64-NEXT: Machine: EM_X86_64 (0x3E)
60 # X86-64-NEXT: Version: 1
61 # X86-64-NEXT: Entry:
62 # X86-64-NEXT: ProgramHeaderOffset: 0x40
63 # X86-64-NEXT: SectionHeaderOffset:
64 # X86-64-NEXT: Flags [ (0x0)
65 # X86-64-NEXT: ]
66 # X86-64-NEXT: HeaderSize: 64
67 # X86-64-NEXT: ProgramHeaderEntrySize: 56
68 # X86-64-NEXT: ProgramHeaderCount:
69 # X86-64-NEXT: SectionHeaderEntrySize: 64
70 # X86-64-NEXT: SectionHeaderCount:
71 # X86-64-NEXT: StringTableSectionIndex:
72 # X86-64-NEXT: }
74 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux-gnux32 %s -o %tx32
75 # RUN: ld.lld -m elf32_x86_64 %tx32 -o %t2x32
76 # RUN: llvm-readobj --file-headers %t2x32 | FileCheck --check-prefix=X32 %s
77 # RUN: ld.lld %tx32 -o %t3x32
78 # RUN: llvm-readobj --file-headers %t3x32 | FileCheck --check-prefix=X32 %s
79 # RUN: echo 'OUTPUT_FORMAT(elf32-x86-64)' > %t4x32.script
80 # RUN: ld.lld %t4x32.script %tx32 -o %t4x32
81 # RUN: llvm-readobj --file-headers %t4x32 | FileCheck --check-prefix=X32 %s
82 # X32: ElfHeader {
83 # X32-NEXT: Ident {
84 # X32-NEXT: Magic: (7F 45 4C 46)
85 # X32-NEXT: Class: 32-bit (0x1)
86 # X32-NEXT: DataEncoding: LittleEndian (0x1)
87 # X32-NEXT: FileVersion: 1
88 # X32-NEXT: OS/ABI: SystemV (0x0)
89 # X32-NEXT: ABIVersion: 0
90 # X32-NEXT: Unused: (00 00 00 00 00 00 00)
91 # X32-NEXT: }
92 # X32-NEXT: Type: Executable (0x2)
93 # X32-NEXT: Machine: EM_X86_64 (0x3E)
94 # X32-NEXT: Version: 1
95 # X32-NEXT: Entry:
96 # X32-NEXT: ProgramHeaderOffset: 0x34
97 # X32-NEXT: SectionHeaderOffset:
98 # X32-NEXT: Flags [ (0x0)
99 # X32-NEXT: ]
100 # X32-NEXT: HeaderSize: 52
101 # X32-NEXT: ProgramHeaderEntrySize: 32
102 # X32-NEXT: ProgramHeaderCount:
103 # X32-NEXT: SectionHeaderEntrySize: 40
104 # X32-NEXT: SectionHeaderCount:
105 # X32-NEXT: StringTableSectionIndex:
106 # X32-NEXT: }
108 # RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tx86
109 # RUN: ld.lld -m elf_i386 %tx86 -o %t2x86
110 # RUN: llvm-readobj --file-headers %t2x86 | FileCheck --check-prefix=X86 %s
111 # RUN: ld.lld %tx86 -o %t3x86
112 # RUN: llvm-readobj --file-headers %t3x86 | FileCheck --check-prefix=X86 %s
113 # RUN: echo 'OUTPUT_FORMAT(elf32-i386)' > %t4x86.script
114 # RUN: ld.lld %t4x86.script %tx86 -o %t4x86
115 # RUN: llvm-readobj --file-headers %t4x86 | FileCheck --check-prefix=X86 %s
116 # X86: ElfHeader {
117 # X86-NEXT: Ident {
118 # X86-NEXT: Magic: (7F 45 4C 46)
119 # X86-NEXT: Class: 32-bit (0x1)
120 # X86-NEXT: DataEncoding: LittleEndian (0x1)
121 # X86-NEXT: FileVersion: 1
122 # X86-NEXT: OS/ABI: SystemV (0x0)
123 # X86-NEXT: ABIVersion: 0
124 # X86-NEXT: Unused: (00 00 00 00 00 00 00)
125 # X86-NEXT: }
126 # X86-NEXT: Type: Executable (0x2)
127 # X86-NEXT: Machine: EM_386 (0x3)
128 # X86-NEXT: Version: 1
129 # X86-NEXT: Entry:
130 # X86-NEXT: ProgramHeaderOffset: 0x34
131 # X86-NEXT: SectionHeaderOffset:
132 # X86-NEXT: Flags [ (0x0)
133 # X86-NEXT: ]
134 # X86-NEXT: HeaderSize: 52
135 # X86-NEXT: ProgramHeaderEntrySize: 32
136 # X86-NEXT: ProgramHeaderCount:
137 # X86-NEXT: SectionHeaderEntrySize: 40
138 # X86-NEXT: SectionHeaderCount:
139 # X86-NEXT: StringTableSectionIndex:
140 # X86-NEXT: }
142 # RUN: llvm-mc -filetype=obj -triple=i686-unknown-freebsd %s -o %tx86fbsd
143 # RUN: ld.lld -m elf_i386_fbsd %tx86fbsd -o %t2x86fbsd
144 # RUN: llvm-readobj --file-headers %t2x86fbsd | FileCheck --check-prefix=X86FBSD %s
145 # RUN: ld.lld %tx86fbsd -o %t3x86fbsd
146 # RUN: llvm-readobj --file-headers %t3x86fbsd | FileCheck --check-prefix=X86FBSD %s
147 # RUN: echo 'OUTPUT_FORMAT(elf32-i386-freebsd)' > %t4x86fbsd.script
148 # RUN: ld.lld %t4x86fbsd.script %tx86fbsd -o %t4x86fbsd
149 # RUN: llvm-readobj --file-headers %t4x86fbsd | FileCheck --check-prefix=X86FBSD %s
150 # X86FBSD: ElfHeader {
151 # X86FBSD-NEXT: Ident {
152 # X86FBSD-NEXT: Magic: (7F 45 4C 46)
153 # X86FBSD-NEXT: Class: 32-bit (0x1)
154 # X86FBSD-NEXT: DataEncoding: LittleEndian (0x1)
155 # X86FBSD-NEXT: FileVersion: 1
156 # X86FBSD-NEXT: OS/ABI: FreeBSD (0x9)
157 # X86FBSD-NEXT: ABIVersion: 0
158 # X86FBSD-NEXT: Unused: (00 00 00 00 00 00 00)
159 # X86FBSD-NEXT: }
160 # X86FBSD-NEXT: Type: Executable (0x2)
161 # X86FBSD-NEXT: Machine: EM_386 (0x3)
162 # X86FBSD-NEXT: Version: 1
163 # X86FBSD-NEXT: Entry:
164 # X86FBSD-NEXT: ProgramHeaderOffset: 0x34
165 # X86FBSD-NEXT: SectionHeaderOffset:
166 # X86FBSD-NEXT: Flags [ (0x0)
167 # X86FBSD-NEXT: ]
168 # X86FBSD-NEXT: HeaderSize: 52
169 # X86FBSD-NEXT: ProgramHeaderEntrySize: 32
170 # X86FBSD-NEXT: ProgramHeaderCount:
171 # X86FBSD-NEXT: SectionHeaderEntrySize: 40
172 # X86FBSD-NEXT: SectionHeaderCount:
173 # X86FBSD-NEXT: StringTableSectionIndex:
174 # X86FBSD-NEXT: }
176 # RUN: llvm-mc -filetype=obj -triple=i586-intel-elfiamcu %s -o %tiamcu
177 # RUN: ld.lld -m elf_iamcu %tiamcu -o %t2iamcu
178 # RUN: llvm-readobj --file-headers %t2iamcu | FileCheck --check-prefix=IAMCU %s
179 # RUN: ld.lld %tiamcu -o %t3iamcu
180 # RUN: llvm-readobj --file-headers %t3iamcu | FileCheck --check-prefix=IAMCU %s
181 # RUN: echo 'OUTPUT_FORMAT(elf32-iamcu)' > %t4iamcu.script
182 # RUN: ld.lld %t4iamcu.script %tiamcu -o %t4iamcu
183 # RUN: llvm-readobj --file-headers %t4iamcu | FileCheck --check-prefix=IAMCU %s
184 # IAMCU: ElfHeader {
185 # IAMCU-NEXT: Ident {
186 # IAMCU-NEXT: Magic: (7F 45 4C 46)
187 # IAMCU-NEXT: Class: 32-bit (0x1)
188 # IAMCU-NEXT: DataEncoding: LittleEndian (0x1)
189 # IAMCU-NEXT: FileVersion: 1
190 # IAMCU-NEXT: OS/ABI: SystemV (0x0)
191 # IAMCU-NEXT: ABIVersion: 0
192 # IAMCU-NEXT: Unused: (00 00 00 00 00 00 00)
193 # IAMCU-NEXT: }
194 # IAMCU-NEXT: Type: Executable (0x2)
195 # IAMCU-NEXT: Machine: EM_IAMCU (0x6)
196 # IAMCU-NEXT: Version: 1
197 # IAMCU-NEXT: Entry:
198 # IAMCU-NEXT: ProgramHeaderOffset: 0x34
199 # IAMCU-NEXT: SectionHeaderOffset:
200 # IAMCU-NEXT: Flags [ (0x0)
201 # IAMCU-NEXT: ]
202 # IAMCU-NEXT: HeaderSize: 52
203 # IAMCU-NEXT: ProgramHeaderEntrySize: 32
204 # IAMCU-NEXT: ProgramHeaderCount:
205 # IAMCU-NEXT: SectionHeaderEntrySize: 40
206 # IAMCU-NEXT: SectionHeaderCount:
207 # IAMCU-NEXT: StringTableSectionIndex:
208 # IAMCU-NEXT: }
210 .globl _start
211 _start: