1; RUN: llvm-mc -n -triple arm64-apple-darwin10 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
2
3	.text
4_fred:
5	bl	_func
6	bl	_func + 20
7
8	adrp	x3, _data@page
9        ldr	w2, [x3, _data@pageoff]
10
11        add	x3, x3, _data@pageoff + 4
12
13	adrp	x3, _data@page+1
14        ldr	w2, [x3, _data@pageoff + 4]
15
16	adrp	x3, _data_ext@gotpage
17        ldr	w2, [x3, _data_ext@gotpageoff]
18
19	.data
20_data:
21        .quad _foo
22        .quad _foo + 4
23        .quad _foo - _bar
24        .quad _foo - _bar + 4
25
26        .long _foo - _bar
27
28        .quad _foo@got
29        .long _foo@got - .
30
31
32; CHECK: ('cputype', 16777228)
33; CHECK: ('cpusubtype', 0)
34; CHECK: ('filetype', 1)
35; CHECK: ('num_load_commands', 3)
36; CHECK: ('load_commands_size', 336)
37; CHECK: ('flag', 0)
38; CHECK: ('reserved', 0)
39; CHECK: ('load_commands', [
40; CHECK:   # Load Command 0
41; CHECK:  (('command', 25)
42; CHECK:   ('size', 232)
43; CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
44; CHECK:   ('vm_addr', 0)
45; CHECK:   ('vm_size', 84)
46; CHECK:   ('file_offset', 368)
47; CHECK:   ('file_size', 84)
48; CHECK:   ('maxprot', 7)
49; CHECK:   ('initprot', 7)
50; CHECK:   ('num_sections', 2)
51; CHECK:   ('flags', 0)
52; CHECK:   ('sections', [
53; CHECK:     # Section 0
54; CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
55; CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
56; CHECK:     ('address', 0)
57; CHECK:     ('size', 36)
58; CHECK:     ('offset', 368)
59; CHECK:     ('alignment', 0)
60; CHECK:     ('reloc_offset', 452)
61; CHECK:     ('num_reloc', 13)
62; CHECK:     ('flags', 0x80000400)
63; CHECK:     ('reserved1', 0)
64; CHECK:     ('reserved2', 0)
65; CHECK:     ('reserved3', 0)
66; CHECK:    ),
67; CHECK:   ('_relocations', [
68; CHECK:     # Relocation 0
69; CHECK:     (('word-0', 0x20),
70; CHECK:      ('word-1', 0x6c000005)),
71; CHECK:     # Relocation 1
72; CHECK:     (('word-0', 0x1c),
73; CHECK:      ('word-1', 0x5d000005)),
74; CHECK:     # Relocation 2
75; CHECK:     (('word-0', 0x18),
76; CHECK:      ('word-1', 0xa4000004)),
77; CHECK:     # Relocation 3
78; CHECK:     (('word-0', 0x18),
79; CHECK:      ('word-1', 0x4c000002)),
80; CHECK:     # Relocation 4
81; CHECK:     (('word-0', 0x14),
82; CHECK:      ('word-1', 0xa4000001)),
83; CHECK:     # Relocation 5
84; CHECK:     (('word-0', 0x14),
85; CHECK:      ('word-1', 0x3d000002)),
86; CHECK:     # Relocation 6
87; CHECK:     (('word-0', 0x10),
88; CHECK:      ('word-1', 0xa4000004)),
89; CHECK:     # Relocation 7
90; CHECK:     (('word-0', 0x10),
91; CHECK:      ('word-1', 0x4c000002)),
92; CHECK:     # Relocation 8
93; CHECK:     (('word-0', 0xc),
94; CHECK:      ('word-1', 0x4c000002)),
95; CHECK:     # Relocation 9
96; CHECK:     (('word-0', 0x8),
97; CHECK:      ('word-1', 0x3d000002)),
98; CHECK:     # Relocation 10
99; CHECK:     (('word-0', 0x4),
100; CHECK:      ('word-1', 0xa4000014)),
101; CHECK:     # Relocation 11
102; CHECK:     (('word-0', 0x4),
103; CHECK:      ('word-1', 0x2d000007)),
104; CHECK:     # Relocation 12
105; CHECK:     (('word-0', 0x0),
106; CHECK:      ('word-1', 0x2d000007)),
107; CHECK:   ])
108; CHECK:   ('_section_data', '00000094 00000094 03000090 620040b9 63000091 03000090 620040b9 03000090 620040b9')
109; CHECK:     # Section 1
110; CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
111; CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
112; CHECK:     ('address', 36)
113; CHECK:     ('size', 48)
114; CHECK:     ('offset', 404)
115; CHECK:     ('alignment', 0)
116; CHECK:     ('reloc_offset', 556)
117; CHECK:     ('num_reloc', 10)
118; CHECK:     ('flags', 0x0)
119; CHECK:     ('reserved1', 0)
120; CHECK:     ('reserved2', 0)
121; CHECK:     ('reserved3', 0)
122; CHECK:    ),
123; CHECK:   ('_relocations', [
124; CHECK:     # Relocation 0
125; CHECK:     (('word-0', 0x2c),
126; CHECK:      ('word-1', 0x7d000006)),
127; CHECK:     # Relocation 1
128; CHECK:     (('word-0', 0x24),
129; CHECK:      ('word-1', 0x7e000006)),
130; CHECK:     # Relocation 2
131; CHECK:     (('word-0', 0x20),
132; CHECK:      ('word-1', 0x1c000004)),
133; CHECK:     # Relocation 3
134; CHECK:     (('word-0', 0x20),
135; CHECK:      ('word-1', 0xc000006)),
136; CHECK:     # Relocation 4
137; CHECK:     (('word-0', 0x18),
138; CHECK:      ('word-1', 0x1e000004)),
139; CHECK:     # Relocation 5
140; CHECK:     (('word-0', 0x18),
141; CHECK:      ('word-1', 0xe000006)),
142; CHECK:     # Relocation 6
143; CHECK:     (('word-0', 0x10),
144; CHECK:      ('word-1', 0x1e000004)),
145; CHECK:     # Relocation 7
146; CHECK:     (('word-0', 0x10),
147; CHECK:      ('word-1', 0xe000006)),
148; CHECK:     # Relocation 8
149; CHECK:     (('word-0', 0x8),
150; CHECK:      ('word-1', 0xe000006)),
151; CHECK:     # Relocation 9
152; CHECK:     (('word-0', 0x0),
153; CHECK:      ('word-1', 0xe000006)),
154; CHECK:   ])
155; CHECK:   ('_section_data', '00000000 00000000 04000000 00000000 00000000 00000000 04000000 00000000 00000000 00000000 00000000 d4ffffff')
156; CHECK:   ])
157; CHECK:  ),
158