1bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s 2bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 3bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher.tdata 4bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher_a$tlv$init: 5bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .long 4 6bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 7bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 8bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher.tlv 9bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .globl _a 10bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher_a: 11bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .quad __tlv_bootstrap 12bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .quad 0 13bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .quad _a$tlv$init 14bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 15bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher.text 16bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .globl _foo 17bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher .align 4, 0x90 18bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 19bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher_foo: 20bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher movq _a@TLVP(%rip), %rdi 21bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher call *(%rdi) # returns &a in %rax 22bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher ret 23bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher 24bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('cputype', 16777223) 25bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('cpusubtype', 3) 26bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('filetype', 1) 2744fa0473ae9144a8cfb4a500ae9de17239e69d2eDaniel Dunbar// CHECK: ('num_load_commands', 3) 28bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('load_commands_size', 416) 29bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('flag', 0) 30bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved', 0) 31bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('load_commands', [ 32bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Load Command 0 33bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('command', 25) 34bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 312) 35bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 36bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('vm_addr', 0) 37bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('vm_size', 38) 38bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('file_offset', 448) 39bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('file_size', 38) 40bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('maxprot', 7) 41bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('initprot', 7) 42bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('num_sections', 3) 43bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('flags', 0) 44bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('sections', [ 45bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Section 0 46bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 47bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 48bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('address', 0) 49bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 10) 50bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('offset', 448) 51bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('alignment', 4) 52bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reloc_offset', 488) 53bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('num_reloc', 1) 54bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('flags', 0x80000400) 55bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved1', 0) 56bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved2', 0) 57bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved3', 0) 58bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 59bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_relocations', [ 60bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Relocation 0 61bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('word-0', 0x3), 62bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('word-1', 0x9d000001)), 63bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 64228290c0d181b663f33680aea03e10843da5f907Rafael Espindola// CHECK: ('_section_data', '488b3d00 000000ff 17c3') 65bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Section 1 66bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('section_name', '__thread_data\x00\x00\x00') 67bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 68bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('address', 10) 69bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 4) 70bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('offset', 458) 71bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('alignment', 0) 72bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reloc_offset', 0) 73bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('num_reloc', 0) 74bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('flags', 0x11) 75bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved1', 0) 76bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved2', 0) 77bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved3', 0) 78bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 79bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_relocations', [ 80bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 81228290c0d181b663f33680aea03e10843da5f907Rafael Espindola// CHECK: ('_section_data', '04000000') 82bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Section 2 83bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('section_name', '__thread_vars\x00\x00\x00') 84bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') 85bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('address', 14) 86bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 24) 87bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('offset', 462) 88bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('alignment', 0) 89bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reloc_offset', 496) 90bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('num_reloc', 2) 91bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('flags', 0x13) 92bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved1', 0) 93bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved2', 0) 94bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('reserved3', 0) 95bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 96bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_relocations', [ 97bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Relocation 0 98bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('word-0', 0x10), 99bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('word-1', 0xe000000)), 100bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Relocation 1 101bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('word-0', 0x0), 102bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('word-1', 0xe000003)), 103bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 104228290c0d181b663f33680aea03e10843da5f907Rafael Espindola// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000') 105bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 106bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 107bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Load Command 1 108bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('command', 2) 109bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 24) 110bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('symoff', 512) 111bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nsyms', 4) 112bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('stroff', 576) 113bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('strsize', 40) 114bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_string_data', '\x00_a\x00__tlv_bootstrap\x00_foo\x00_a$tlv$init\x00\x00\x00\x00') 115bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_symbols', [ 116bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Symbol 0 117bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('n_strx', 25) 118bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_type', 0xe) 119bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_sect', 2) 120bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_desc', 0) 121bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_value', 10) 122bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_string', '_a$tlv$init') 123bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 124bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Symbol 1 125bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('n_strx', 1) 126bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_type', 0xf) 127bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_sect', 3) 128bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_desc', 0) 129bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_value', 14) 130bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_string', '_a') 131bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 132bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Symbol 2 133bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('n_strx', 20) 134bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_type', 0xf) 135bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_sect', 1) 136bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_desc', 0) 137bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_value', 0) 138bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_string', '_foo') 139bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 140bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Symbol 3 141bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('n_strx', 4) 142bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_type', 0x1) 143bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_sect', 0) 144bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_desc', 0) 145bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('n_value', 0) 146bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_string', '__tlv_bootstrap') 147bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 148bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 149bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 150bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: # Load Command 2 151bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: (('command', 11) 152bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('size', 80) 153bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('ilocalsym', 0) 154bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nlocalsym', 1) 155bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('iextdefsym', 1) 156bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nextdefsym', 2) 157bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('iundefsym', 3) 158bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nundefsym', 1) 159bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('tocoff', 0) 160bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('ntoc', 0) 161bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('modtaboff', 0) 162bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nmodtab', 0) 163bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('extrefsymoff', 0) 164bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nextrefsyms', 0) 165bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('indirectsymoff', 0) 166bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nindirectsyms', 0) 167bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('extreloff', 0) 168bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nextrel', 0) 169bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('locreloff', 0) 170bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('nlocrel', 0) 171bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ('_indirect_symbols', [ 172bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 173bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ), 174bd3ba537cdc257b7f2f7fb4ad2ea55ee1e4036f3Eric Christopher// CHECK: ]) 175