1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
4 .align 4, 0 # start with 16 byte alignment filled with zeros
11 .align 4, 0 # start with 16 byte alignment filled with zeros
19 .align 4, 0 # start with 16 byte alignment filled with zeros
26 .align 4, 0 # start with 16 byte alignment filled with zeros
32 # 0x0f, 0x1f, 0x40, 0x00
36 .align 4, 0 # start with 16 byte alignment filled with zeros
40 # nopl 0(%[re]ax,%[re]ax,1)
41 # 0x0f, 0x1f, 0x44, 0x00, 0x00
45 .align 4, 0 # start with 16 byte alignment filled with zeros
48 # nopw 0(%[re]ax,%[re]ax,1)
49 # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00
53 .align 4, 0 # start with 16 byte alignment filled with zeros
56 # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00
60 .align 4, 0 # start with 16 byte alignment filled with zeros
69 # nopl 0L(%[re]ax,%[re]ax,1)
70 # 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
74 .align 4, 0 # start with 16 byte alignment filled with zeros
82 # nopw 0L(%[re]ax,%[re]ax,1)
83 # 0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
87 .align 4, 0 # start with 16 byte alignment filled with zeros
95 # nopw %cs:0L(%[re]ax,%[re]ax,1)
96 # 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
100 .align 4, 0 # start with 16 byte alignment filled with zeros
106 # nopw %cs:0L(%[re]ax,%[re]ax,1)
107 # 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
111 .align 4, 0 # start with 16 byte alignment filled with zeros
116 # nopw 0(%[re]ax,%[re]ax,1)
117 # nopw 0(%[re]ax,%[re]ax,1)
118 # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
119 # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00
123 .align 4, 0 # start with 16 byte alignment filled with zeros
127 # nopw 0(%[re]ax,%[re]ax,1)
129 # 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
130 # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00
134 .align 4, 0 # start with 16 byte alignment filled with zeros
139 # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00,
140 # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00
144 .align 4, 0 # start with 16 byte alignment filled with zeros
147 # nopl 0L(%[re]ax,%[re]ax,1)
148 # 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00,
149 # 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
153 # Only the .text sections gets optimal nops.
154 .section __TEXT,__const
160 // CHECK: File: <stdin>
161 // CHECK: Format: Mach-O 32-bit i386
163 // CHECK: AddressSize: 32bit
164 // CHECK: MachHeader {
165 // CHECK: Magic: Magic (0xFEEDFACE)
166 // CHECK: CpuType: X86 (0x7)
167 // CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
168 // CHECK: FileType: Relocatable (0x1)
169 // CHECK: NumOfLoadCommands: 4
170 // CHECK: SizeOfLoadCommands: 312
171 // CHECK: Flags [ (0x0)
177 // CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
178 // CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
179 // CHECK: Address: 0x0
180 // CHECK: Size: 0x151
181 // CHECK: Offset: 340
182 // CHECK: Alignment: 4
183 // CHECK: RelocationOffset: 0x0
184 // CHECK: RelocationCount: 0
186 // CHECK: Attributes [ (0x800004)
187 // CHECK: PureInstructions (0x800000)
188 // CHECK: SomeInstructions (0x4)
190 // CHECK: Reserved1: 0x0
191 // CHECK: Reserved2: 0x0
192 // CHECK: SectionData (
193 // CHECK: 0000: C390C300 00000000 00000000 00000000 |................|
194 // CHECK: 0010: C3C36690 C3000000 00000000 00000000 |..f.............|
195 // CHECK: 0020: C30F1F00 C3000000 00000000 00000000 |................|
196 // CHECK: 0030: C3C3C3C3 0F1F4000 C3000000 00000000 |......@.........|
197 // CHECK: 0040: C3C3C30F 1F440000 C3000000 00000000 |.....D..........|
198 // CHECK: 0050: C3C3660F 1F440000 C3000000 00000000 |..f..D..........|
199 // CHECK: 0060: C30F1F80 00000000 C3000000 00000000 |................|
200 // CHECK: 0070: C3C3C3C3 C3C3C3C3 C3000000 00000000 |................|
201 // CHECK: 0080: C3C3C3C3 C3C3C366 0F1F8400 00000000 |.......f........|
202 // CHECK: 0090: C3000000 00000000 00000000 00000000 |................|
203 // CHECK: 00A0: C3C3C3C3 C3C3C366 0F1F8400 00000000 |.......f........|
204 // CHECK: 00B0: C3000000 00000000 00000000 00000000 |................|
205 // CHECK: 00C0: C3C3C3C3 C366662E 0F1F8400 00000000 |.....ff.........|
206 // CHECK: 00D0: C3000000 00000000 00000000 00000000 |................|
207 // CHECK: 00E0: C3C3C3C3 6666662E 0F1F8400 00000000 |....fff.........|
208 // CHECK: 00F0: C3000000 00000000 00000000 00000000 |................|
209 // CHECK: 0100: C3C3C366 6666662E 0F1F8400 00000000 |...ffff.........|
210 // CHECK: 0110: C3000000 00000000 00000000 00000000 |................|
211 // CHECK: 0120: C3C36666 6666662E 0F1F8400 00000000 |..fffff.........|
212 // CHECK: 0130: C3000000 00000000 00000000 00000000 |................|
213 // CHECK: 0140: C3666666 6666662E 0F1F8400 00000000 |.ffffff.........|
214 // CHECK: 0150: C3 |.|
219 // CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
220 // CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
221 // CHECK: Address: 0x160
223 // CHECK: Offset: 692
224 // CHECK: Alignment: 4
225 // CHECK: RelocationOffset: 0x0
226 // CHECK: RelocationCount: 0
228 // CHECK: Attributes [ (0x0)
230 // CHECK: Reserved1: 0x0
231 // CHECK: Reserved2: 0x0
232 // CHECK: SectionData (
233 // CHECK: 0000: 00909090 90909090 90909090 90909090 |................|
234 // CHECK: 0010: 00000000 |....|
238 // CHECK: Relocations [
242 // CHECK: Name: f0 (1)
243 // CHECK: Type: Section (0xE)
244 // CHECK: Section: __const (0x2)
245 // CHECK: RefType: UndefinedNonLazy (0x0)
246 // CHECK: Flags [ (0x0)
248 // CHECK: Value: 0x160
251 // CHECK: Indirect Symbols {
257 // CHECK: Cmd: LC_SEGMENT
260 // CHECK: vmaddr: 0x0
261 // CHECK: vmsize: 0x174
262 // CHECK: fileoff: 340
263 // CHECK: filesize: 372
264 // CHECK: maxprot: rwx
265 // CHECK: initprot: rwx
270 // CHECK: ilocalsym: 0
271 // CHECK: nlocalsym: 1
272 // CHECK: iextdefsym: 1
273 // CHECK: nextdefsym: 0
274 // CHECK: iundefsym: 1
275 // CHECK: nundefsym: 0
278 // CHECK: modtaboff: 0
280 // CHECK: extrefsymoff: 0
281 // CHECK: nextrefsyms: 0
282 // CHECK: indirectsymoff: 0
283 // CHECK: nindirectsyms: 0
284 // CHECK: extreloff: 0
286 // CHECK: locreloff: 0