Suppress llvm/test/tools/gold/X86/parallel.ll while investigating.
[oota-llvm.git] / test / MC / MachO / absolutize.s
1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
2
3 _text_a:
4         xorl %eax,%eax
5 _text_b:
6         xorl %eax,%eax
7 Ltext_c:
8         xorl %eax,%eax
9 Ltext_d:
10         xorl %eax,%eax
11
12         movl $(_text_a - _text_b), %eax
13 Ltext_expr_0 = _text_a - _text_b
14         movl $(Ltext_expr_0), %eax
15
16         movl $(Ltext_c - _text_b), %eax
17 Ltext_expr_1 = Ltext_c - _text_b
18         movl $(Ltext_expr_1), %eax
19
20         movl $(Ltext_d - Ltext_c), %eax
21 Ltext_expr_2 = Ltext_d - Ltext_c
22         movl $(Ltext_expr_2), %eax
23
24         movl $(_text_a + Ltext_expr_0), %eax
25
26         .data
27 _data_a:
28         .long 0
29 _data_b:
30         .long 0
31 Ldata_c:
32         .long 0
33 Ldata_d:
34         .long 0
35
36         .long _data_a - _data_b
37 Ldata_expr_0 = _data_a - _data_b
38         .long Ldata_expr_0
39
40         .long Ldata_c - _data_b
41 Ldata_expr_1 = Ldata_c - _data_b
42         .long Ldata_expr_1
43
44         .long Ldata_d - Ldata_c
45 Ldata_expr_2 = Ldata_d - Ldata_c
46         .long Ldata_expr_2
47
48         .long _data_a + Ldata_expr_0
49
50 // CHECK: ('cputype', 7)
51 // CHECK: ('cpusubtype', 3)
52 // CHECK: ('filetype', 1)
53 // CHECK: ('num_load_commands', 4)
54 // CHECK: ('load_commands_size', 312)
55 // CHECK: ('flag', 0)
56 // CHECK: ('load_commands', [
57 // CHECK:   # Load Command 0
58 // CHECK:  (('command', 1)
59 // CHECK:   ('size', 192)
60 // CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
61 // CHECK:   ('vm_addr', 0)
62 // CHECK:   ('vm_size', 87)
63 // CHECK:   ('file_offset', 340)
64 // CHECK:   ('file_size', 87)
65 // CHECK:   ('maxprot', 7)
66 // CHECK:   ('initprot', 7)
67 // CHECK:   ('num_sections', 2)
68 // CHECK:   ('flags', 0)
69 // CHECK:   ('sections', [
70 // CHECK:     # Section 0
71 // CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
72 // CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
73 // CHECK:     ('address', 0)
74 // CHECK:     ('size', 43)
75 // CHECK:     ('offset', 340)
76 // CHECK:     ('alignment', 0)
77 // CHECK:     ('reloc_offset', 428)
78 // CHECK:     ('num_reloc', 3)
79 // CHECK:     ('flags', 0x80000400)
80 // CHECK:     ('reserved1', 0)
81 // CHECK:     ('reserved2', 0)
82 // CHECK:    ),
83 // CHECK:   ('_relocations', [
84 // CHECK:     # Relocation 0
85 // CHECK:     (('word-0', 0xa0000027),
86 // CHECK:      ('word-1', 0x0)),
87 // CHECK:     # Relocation 1
88 // CHECK:     (('word-0', 0xa4000009),
89 // CHECK:      ('word-1', 0x0)),
90 // CHECK:     # Relocation 2
91 // CHECK:     (('word-0', 0xa1000000),
92 // CHECK:      ('word-1', 0x2)),
93 // CHECK:   ])
94 // CHECK:   ('_section_data', '31c031c0 31c031c0 b8feffff ffb8feff ffffb802 000000b8 02000000 b8020000 00b80200 0000b8fe ffffff')
95 // CHECK:     # Section 1
96 // CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
97 // CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
98 // CHECK:     ('address', 43)
99 // CHECK:     ('size', 44)
100 // CHECK:     ('offset', 383)
101 // CHECK:     ('alignment', 0)
102 // CHECK:     ('reloc_offset', 452)
103 // CHECK:     ('num_reloc', 3)
104 // CHECK:     ('flags', 0x0)
105 // CHECK:     ('reserved1', 0)
106 // CHECK:     ('reserved2', 0)
107 // CHECK:    ),
108 // CHECK:   ('_relocations', [
109 // CHECK:     # Relocation 0
110 // CHECK:     (('word-0', 0xa0000028),
111 // CHECK:      ('word-1', 0x2b)),
112 // CHECK:     # Relocation 1
113 // CHECK:     (('word-0', 0xa4000010),
114 // CHECK:      ('word-1', 0x2b)),
115 // CHECK:     # Relocation 2
116 // CHECK:     (('word-0', 0xa1000000),
117 // CHECK:      ('word-1', 0x2f)),
118 // CHECK:   ])
119 // CHECK:   ('_section_data', '00000000 00000000 00000000 00000000 fcffffff fcffffff 04000000 04000000 04000000 04000000 27000000')
120 // CHECK:   ])
121 // CHECK:  ),
122 // CHECK:   # Load Command 2
123 // CHECK:  (('command', 2)
124 // CHECK:   ('size', 24)
125 // CHECK:   ('symoff', 476)
126 // CHECK:   ('nsyms', 4)
127 // CHECK:   ('stroff', 524)
128 // CHECK:   ('strsize', 36)
129 // CHECK:   ('_string_data', '\x00_text_b\x00_data_b\x00_text_a\x00_data_a\x00\x00\x00\x00')
130 // CHECK:   ('_symbols', [
131 // CHECK:     # Symbol 0
132 // CHECK:    (('n_strx', 17)
133 // CHECK:     ('n_type', 0xe)
134 // CHECK:     ('n_sect', 1)
135 // CHECK:     ('n_desc', 0)
136 // CHECK:     ('n_value', 0)
137 // CHECK:     ('_string', '_text_a')
138 // CHECK:    ),
139 // CHECK:     # Symbol 1
140 // CHECK:    (('n_strx', 1)
141 // CHECK:     ('n_type', 0xe)
142 // CHECK:     ('n_sect', 1)
143 // CHECK:     ('n_desc', 0)
144 // CHECK:     ('n_value', 2)
145 // CHECK:     ('_string', '_text_b')
146 // CHECK:    ),
147 // CHECK:     # Symbol 2
148 // CHECK:    (('n_strx', 25)
149 // CHECK:     ('n_type', 0xe)
150 // CHECK:     ('n_sect', 2)
151 // CHECK:     ('n_desc', 0)
152 // CHECK:     ('n_value', 43)
153 // CHECK:     ('_string', '_data_a')
154 // CHECK:    ),
155 // CHECK:     # Symbol 3
156 // CHECK:    (('n_strx', 9)
157 // CHECK:     ('n_type', 0xe)
158 // CHECK:     ('n_sect', 2)
159 // CHECK:     ('n_desc', 0)
160 // CHECK:     ('n_value', 47)
161 // CHECK:     ('_string', '_data_b')
162 // CHECK:    ),
163 // CHECK:   ])
164 // CHECK:  ),
165 // CHECK:   # Load Command 3
166 // CHECK:  (('command', 11)
167 // CHECK:   ('size', 80)
168 // CHECK:   ('ilocalsym', 0)
169 // CHECK:   ('nlocalsym', 4)
170 // CHECK:   ('iextdefsym', 4)
171 // CHECK:   ('nextdefsym', 0)
172 // CHECK:   ('iundefsym', 4)
173 // CHECK:   ('nundefsym', 0)
174 // CHECK:   ('tocoff', 0)
175 // CHECK:   ('ntoc', 0)
176 // CHECK:   ('modtaboff', 0)
177 // CHECK:   ('nmodtab', 0)
178 // CHECK:   ('extrefsymoff', 0)
179 // CHECK:   ('nextrefsyms', 0)
180 // CHECK:   ('indirectsymoff', 0)
181 // CHECK:   ('nindirectsyms', 0)
182 // CHECK:   ('extreloff', 0)
183 // CHECK:   ('nextrel', 0)
184 // CHECK:   ('locreloff', 0)
185 // CHECK:   ('nlocrel', 0)
186 // CHECK:   ('_indirect_symbols', [
187 // CHECK:   ])
188 // CHECK:  ),
189 // CHECK: ])