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