xref: /aosp_15_r20/external/llvm/test/MC/MachO/ARM/darwin-Thumb-reloc.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.obj > %t.dump
3*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck < %t.dump %s
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker	.syntax unified
6*9880d681SAndroid Build Coastguard Worker	.section	__TEXT,__text,regular,pure_instructions
7*9880d681SAndroid Build Coastguard Worker	.globl	_main
8*9880d681SAndroid Build Coastguard Worker	.align	2
9*9880d681SAndroid Build Coastguard Worker	.code	16
10*9880d681SAndroid Build Coastguard Worker	.thumb_func	_main
11*9880d681SAndroid Build Coastguard Worker_main:
12*9880d681SAndroid Build Coastguard WorkerLPC0_0:
13*9880d681SAndroid Build Coastguard Worker	blx	_printf
14*9880d681SAndroid Build Coastguard Worker	.align	2
15*9880d681SAndroid Build Coastguard WorkerLCPI0_0:
16*9880d681SAndroid Build Coastguard Worker	.long	L_.str-(LPC0_0+4)
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker	.section	__TEXT,__cstring,cstring_literals
19*9880d681SAndroid Build Coastguard Worker	.align	2
20*9880d681SAndroid Build Coastguard WorkerL_.str:
21*9880d681SAndroid Build Coastguard Worker	.asciz	 "s0"
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker.subsections_via_symbols
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker@ CHECK: File: <stdin>
26*9880d681SAndroid Build Coastguard Worker@ CHECK: Format: Mach-O arm
27*9880d681SAndroid Build Coastguard Worker@ CHECK: Arch: arm
28*9880d681SAndroid Build Coastguard Worker@ CHECK: AddressSize: 32bit
29*9880d681SAndroid Build Coastguard Worker@ CHECK: MachHeader {
30*9880d681SAndroid Build Coastguard Worker@ CHECK:   Magic: Magic (0xFEEDFACE)
31*9880d681SAndroid Build Coastguard Worker@ CHECK:   CpuType: Arm (0xC)
32*9880d681SAndroid Build Coastguard Worker@ CHECK:   CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9)
33*9880d681SAndroid Build Coastguard Worker@ CHECK:   FileType: Relocatable (0x1)
34*9880d681SAndroid Build Coastguard Worker@ CHECK:   NumOfLoadCommands: 4
35*9880d681SAndroid Build Coastguard Worker@ CHECK:   SizeOfLoadCommands: 312
36*9880d681SAndroid Build Coastguard Worker@ CHECK:   Flags [ (0x2000)
37*9880d681SAndroid Build Coastguard Worker@ CHECK:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
38*9880d681SAndroid Build Coastguard Worker@ CHECK:   ]
39*9880d681SAndroid Build Coastguard Worker@ CHECK: }
40*9880d681SAndroid Build Coastguard Worker@ CHECK: Sections [
41*9880d681SAndroid Build Coastguard Worker@ CHECK:   Section {
42*9880d681SAndroid Build Coastguard Worker@ CHECK:     Index: 0
43*9880d681SAndroid Build Coastguard Worker@ CHECK:     Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
44*9880d681SAndroid Build Coastguard Worker@ CHECK:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
45*9880d681SAndroid Build Coastguard Worker@ CHECK:     Address: 0x0
46*9880d681SAndroid Build Coastguard Worker@ CHECK:     Size: 0x8
47*9880d681SAndroid Build Coastguard Worker@ CHECK:     Offset: 340
48*9880d681SAndroid Build Coastguard Worker@ CHECK:     Alignment: 2
49*9880d681SAndroid Build Coastguard Worker@ CHECK:     RelocationOffset: 0x160
50*9880d681SAndroid Build Coastguard Worker@ CHECK:     RelocationCount: 3
51*9880d681SAndroid Build Coastguard Worker@ CHECK:     Type: 0x0
52*9880d681SAndroid Build Coastguard Worker@ CHECK:     Attributes [ (0x800004)
53*9880d681SAndroid Build Coastguard Worker@ CHECK:       PureInstructions (0x800000)
54*9880d681SAndroid Build Coastguard Worker@ CHECK:       SomeInstructions (0x4)
55*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
56*9880d681SAndroid Build Coastguard Worker@ CHECK:     Reserved1: 0x0
57*9880d681SAndroid Build Coastguard Worker@ CHECK:     Reserved2: 0x0
58*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionData (
59*9880d681SAndroid Build Coastguard Worker@ CHECK:       0000: FFF7FEEF 04000000                    |........|
60*9880d681SAndroid Build Coastguard Worker@ CHECK:     )
61*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
62*9880d681SAndroid Build Coastguard Worker@ CHECK:   Section {
63*9880d681SAndroid Build Coastguard Worker@ CHECK:     Index: 1
64*9880d681SAndroid Build Coastguard Worker@ CHECK:     Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
65*9880d681SAndroid Build Coastguard Worker@ CHECK:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
66*9880d681SAndroid Build Coastguard Worker@ CHECK:     Address: 0x8
67*9880d681SAndroid Build Coastguard Worker@ CHECK:     Size: 0x3
68*9880d681SAndroid Build Coastguard Worker@ CHECK:     Offset: 348
69*9880d681SAndroid Build Coastguard Worker@ CHECK:     Alignment: 2
70*9880d681SAndroid Build Coastguard Worker@ CHECK:     RelocationOffset: 0x0
71*9880d681SAndroid Build Coastguard Worker@ CHECK:     RelocationCount: 0
72*9880d681SAndroid Build Coastguard Worker@ CHECK:     Type: ExtReloc (0x2)
73*9880d681SAndroid Build Coastguard Worker@ CHECK:     Attributes [ (0x0)
74*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
75*9880d681SAndroid Build Coastguard Worker@ CHECK:     Reserved1: 0x0
76*9880d681SAndroid Build Coastguard Worker@ CHECK:     Reserved2: 0x0
77*9880d681SAndroid Build Coastguard Worker@ CHECK:     SectionData (
78*9880d681SAndroid Build Coastguard Worker@ CHECK:       0000: 733000                               |s0.|
79*9880d681SAndroid Build Coastguard Worker@ CHECK:     )
80*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
81*9880d681SAndroid Build Coastguard Worker@ CHECK: ]
82*9880d681SAndroid Build Coastguard Worker@ CHECK: Relocations [
83*9880d681SAndroid Build Coastguard Worker@ CHECK:   Section __text {
84*9880d681SAndroid Build Coastguard Worker@ CHECK:     0x4 0 2 n/a ARM_RELOC_SECTDIFF 1 0x8
85*9880d681SAndroid Build Coastguard Worker@ CHECK:     0x0 0 2 n/a ARM_RELOC_PAIR 1 0x0
86*9880d681SAndroid Build Coastguard Worker@ CHECK:     0x0 1 2 1 ARM_THUMB_RELOC_BR22 0 _printf
87*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
88*9880d681SAndroid Build Coastguard Worker@ CHECK: ]
89*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbols [
90*9880d681SAndroid Build Coastguard Worker@ CHECK:   Symbol {
91*9880d681SAndroid Build Coastguard Worker@ CHECK:     Name: _main (1)
92*9880d681SAndroid Build Coastguard Worker@ CHECK:     Extern
93*9880d681SAndroid Build Coastguard Worker@ CHECK:     Type: Section (0xE)
94*9880d681SAndroid Build Coastguard Worker@ CHECK:     Section: __text (0x1)
95*9880d681SAndroid Build Coastguard Worker@ CHECK:     RefType: 0x8
96*9880d681SAndroid Build Coastguard Worker@ CHECK:     Flags [ (0x0)
97*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
98*9880d681SAndroid Build Coastguard Worker@ CHECK:     Value: 0x0
99*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
100*9880d681SAndroid Build Coastguard Worker@ CHECK:   Symbol {
101*9880d681SAndroid Build Coastguard Worker@ CHECK:     Name: _printf (7)
102*9880d681SAndroid Build Coastguard Worker@ CHECK:     Extern
103*9880d681SAndroid Build Coastguard Worker@ CHECK:     Type: Undef (0x0)
104*9880d681SAndroid Build Coastguard Worker@ CHECK:     Section:  (0x0)
105*9880d681SAndroid Build Coastguard Worker@ CHECK:     RefType: UndefinedNonLazy (0x0)
106*9880d681SAndroid Build Coastguard Worker@ CHECK:     Flags [ (0x0)
107*9880d681SAndroid Build Coastguard Worker@ CHECK:     ]
108*9880d681SAndroid Build Coastguard Worker@ CHECK:     Value: 0x0
109*9880d681SAndroid Build Coastguard Worker@ CHECK:   }
110*9880d681SAndroid Build Coastguard Worker@ CHECK: ]
111*9880d681SAndroid Build Coastguard Worker@ CHECK: Indirect Symbols {
112*9880d681SAndroid Build Coastguard Worker@ CHECK:   Number: 0
113*9880d681SAndroid Build Coastguard Worker@ CHECK:   Symbols [
114*9880d681SAndroid Build Coastguard Worker@ CHECK:   ]
115*9880d681SAndroid Build Coastguard Worker@ CHECK: }
116*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment {
117*9880d681SAndroid Build Coastguard Worker@ CHECK:   Cmd: LC_SEGMENT
118*9880d681SAndroid Build Coastguard Worker@ CHECK:   Name:
119*9880d681SAndroid Build Coastguard Worker@ CHECK:   Size: 192
120*9880d681SAndroid Build Coastguard Worker@ CHECK:   vmaddr: 0x0
121*9880d681SAndroid Build Coastguard Worker@ CHECK:   vmsize: 0xB
122*9880d681SAndroid Build Coastguard Worker@ CHECK:   fileoff: 340
123*9880d681SAndroid Build Coastguard Worker@ CHECK:   filesize: 11
124*9880d681SAndroid Build Coastguard Worker@ CHECK:   maxprot: rwx
125*9880d681SAndroid Build Coastguard Worker@ CHECK:   initprot: rwx
126*9880d681SAndroid Build Coastguard Worker@ CHECK:   nsects: 2
127*9880d681SAndroid Build Coastguard Worker@ CHECK:   flags: 0x0
128*9880d681SAndroid Build Coastguard Worker@ CHECK: }
129*9880d681SAndroid Build Coastguard Worker@ CHECK: Dysymtab {
130*9880d681SAndroid Build Coastguard Worker@ CHECK:   ilocalsym: 0
131*9880d681SAndroid Build Coastguard Worker@ CHECK:   nlocalsym: 0
132*9880d681SAndroid Build Coastguard Worker@ CHECK:   iextdefsym: 0
133*9880d681SAndroid Build Coastguard Worker@ CHECK:   nextdefsym: 1
134*9880d681SAndroid Build Coastguard Worker@ CHECK:   iundefsym: 1
135*9880d681SAndroid Build Coastguard Worker@ CHECK:   nundefsym: 1
136*9880d681SAndroid Build Coastguard Worker@ CHECK:   tocoff: 0
137*9880d681SAndroid Build Coastguard Worker@ CHECK:   ntoc: 0
138*9880d681SAndroid Build Coastguard Worker@ CHECK:   modtaboff: 0
139*9880d681SAndroid Build Coastguard Worker@ CHECK:   nmodtab: 0
140*9880d681SAndroid Build Coastguard Worker@ CHECK:   extrefsymoff: 0
141*9880d681SAndroid Build Coastguard Worker@ CHECK:   nextrefsyms: 0
142*9880d681SAndroid Build Coastguard Worker@ CHECK:   indirectsymoff: 0
143*9880d681SAndroid Build Coastguard Worker@ CHECK:   nindirectsyms: 0
144*9880d681SAndroid Build Coastguard Worker@ CHECK:   extreloff: 0
145*9880d681SAndroid Build Coastguard Worker@ CHECK:   nextrel: 0
146*9880d681SAndroid Build Coastguard Worker@ CHECK:   locreloff: 0
147*9880d681SAndroid Build Coastguard Worker@ CHECK:   nlocrel: 0
148*9880d681SAndroid Build Coastguard Worker@ CHECK: }
149