annotate lld/test/mach-o/arm-interworking-movw.yaml @ 192:d7606dcf6fce

Added tag llvm10 for changeset 0572611fdcc8
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 18:01:34 +0900
parents 0572611fdcc8
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 # REQUIRES: arm
anatofuz
parents:
diff changeset
2 # RUN: ld64.lld -arch armv7 -r -print_atoms %s -o %t | FileCheck %s
anatofuz
parents:
diff changeset
3 # RUN: ld64.lld -arch armv7 -dylib -print_atoms %t -o %t2 \
anatofuz
parents:
diff changeset
4 # RUN: %p/Inputs/armv7/libSystem.yaml -sectalign __TEXT __text 0x1000 | FileCheck %s
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
5 # RUN: llvm-objdump -d --macho --no-symbolic-operands %t2 | FileCheck --check-prefix=CODE %s
150
anatofuz
parents:
diff changeset
6 #
anatofuz
parents:
diff changeset
7 # Test thumb and arm branches round trip through -r.
anatofuz
parents:
diff changeset
8 # Test movw/movt pairs have low bit set properly for thumb vs arm.
anatofuz
parents:
diff changeset
9 #
anatofuz
parents:
diff changeset
10 #
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 --- !mach-o
anatofuz
parents:
diff changeset
13 arch: armv7
anatofuz
parents:
diff changeset
14 file-type: MH_OBJECT
anatofuz
parents:
diff changeset
15 flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ]
anatofuz
parents:
diff changeset
16 sections:
anatofuz
parents:
diff changeset
17 - segment: __TEXT
anatofuz
parents:
diff changeset
18 section: __text
anatofuz
parents:
diff changeset
19 type: S_REGULAR
anatofuz
parents:
diff changeset
20 attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
anatofuz
parents:
diff changeset
21 alignment: 2
anatofuz
parents:
diff changeset
22 address: 0x0000000000000000
anatofuz
parents:
diff changeset
23 content: [ 0x40, 0xF2, 0x25, 0x00, 0xC0, 0xF2, 0x00, 0x00,
anatofuz
parents:
diff changeset
24 0x40, 0xF2, 0x01, 0x01, 0xC0, 0xF2, 0x00, 0x01,
anatofuz
parents:
diff changeset
25 0x40, 0xF2, 0x4E, 0x02, 0xC0, 0xF2, 0x00, 0x02,
anatofuz
parents:
diff changeset
26 0x40, 0xF2, 0x2A, 0x03, 0xC0, 0xF2, 0x00, 0x03,
anatofuz
parents:
diff changeset
27 0x78, 0x44, 0x70, 0x47, 0x70, 0x47, 0x25, 0x00,
anatofuz
parents:
diff changeset
28 0x00, 0xE3, 0x00, 0x00, 0x40, 0xE3, 0xD7, 0x1F,
anatofuz
parents:
diff changeset
29 0x0F, 0xE3, 0xFF, 0x1F, 0x4F, 0xE3, 0x4E, 0x20,
anatofuz
parents:
diff changeset
30 0x00, 0xE3, 0x00, 0x20, 0x40, 0xE3, 0x00, 0x30,
anatofuz
parents:
diff changeset
31 0x00, 0xE3, 0x00, 0x30, 0x40, 0xE3, 0x0F, 0x00,
anatofuz
parents:
diff changeset
32 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF,
anatofuz
parents:
diff changeset
33 0x2F, 0xE1 ]
anatofuz
parents:
diff changeset
34 relocations:
anatofuz
parents:
diff changeset
35 - offset: 0x00000042
anatofuz
parents:
diff changeset
36 scattered: true
anatofuz
parents:
diff changeset
37 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
38 length: 1
anatofuz
parents:
diff changeset
39 pc-rel: false
anatofuz
parents:
diff changeset
40 value: 0x0000004E
anatofuz
parents:
diff changeset
41 - offset: 0x00000000
anatofuz
parents:
diff changeset
42 scattered: true
anatofuz
parents:
diff changeset
43 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
44 length: 1
anatofuz
parents:
diff changeset
45 pc-rel: false
anatofuz
parents:
diff changeset
46 value: 0x00000046
anatofuz
parents:
diff changeset
47 - offset: 0x0000003E
anatofuz
parents:
diff changeset
48 scattered: true
anatofuz
parents:
diff changeset
49 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
50 length: 0
anatofuz
parents:
diff changeset
51 pc-rel: false
anatofuz
parents:
diff changeset
52 value: 0x0000004E
anatofuz
parents:
diff changeset
53 - offset: 0x00000000
anatofuz
parents:
diff changeset
54 scattered: true
anatofuz
parents:
diff changeset
55 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
56 length: 0
anatofuz
parents:
diff changeset
57 pc-rel: false
anatofuz
parents:
diff changeset
58 value: 0x00000046
anatofuz
parents:
diff changeset
59 - offset: 0x0000003A
anatofuz
parents:
diff changeset
60 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
61 length: 1
anatofuz
parents:
diff changeset
62 pc-rel: false
anatofuz
parents:
diff changeset
63 extern: false
anatofuz
parents:
diff changeset
64 symbol: 1
anatofuz
parents:
diff changeset
65 - offset: 0x0000004E
anatofuz
parents:
diff changeset
66 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
67 length: 1
anatofuz
parents:
diff changeset
68 pc-rel: false
anatofuz
parents:
diff changeset
69 extern: false
anatofuz
parents:
diff changeset
70 symbol: 16777215
anatofuz
parents:
diff changeset
71 - offset: 0x00000036
anatofuz
parents:
diff changeset
72 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
73 length: 0
anatofuz
parents:
diff changeset
74 pc-rel: false
anatofuz
parents:
diff changeset
75 extern: false
anatofuz
parents:
diff changeset
76 symbol: 1
anatofuz
parents:
diff changeset
77 - offset: 0x00000000
anatofuz
parents:
diff changeset
78 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
79 length: 0
anatofuz
parents:
diff changeset
80 pc-rel: false
anatofuz
parents:
diff changeset
81 extern: false
anatofuz
parents:
diff changeset
82 symbol: 16777215
anatofuz
parents:
diff changeset
83 - offset: 0x00000032
anatofuz
parents:
diff changeset
84 scattered: true
anatofuz
parents:
diff changeset
85 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
86 length: 1
anatofuz
parents:
diff changeset
87 pc-rel: false
anatofuz
parents:
diff changeset
88 value: 0x00000024
anatofuz
parents:
diff changeset
89 - offset: 0x0000FFD6
anatofuz
parents:
diff changeset
90 scattered: true
anatofuz
parents:
diff changeset
91 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
92 length: 1
anatofuz
parents:
diff changeset
93 pc-rel: false
anatofuz
parents:
diff changeset
94 value: 0x00000046
anatofuz
parents:
diff changeset
95 - offset: 0x0000002E
anatofuz
parents:
diff changeset
96 scattered: true
anatofuz
parents:
diff changeset
97 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
98 length: 0
anatofuz
parents:
diff changeset
99 pc-rel: false
anatofuz
parents:
diff changeset
100 value: 0x00000024
anatofuz
parents:
diff changeset
101 - offset: 0x0000FFFF
anatofuz
parents:
diff changeset
102 scattered: true
anatofuz
parents:
diff changeset
103 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
104 length: 0
anatofuz
parents:
diff changeset
105 pc-rel: false
anatofuz
parents:
diff changeset
106 value: 0x00000046
anatofuz
parents:
diff changeset
107 - offset: 0x0000002A
anatofuz
parents:
diff changeset
108 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
109 length: 1
anatofuz
parents:
diff changeset
110 pc-rel: false
anatofuz
parents:
diff changeset
111 extern: false
anatofuz
parents:
diff changeset
112 symbol: 1
anatofuz
parents:
diff changeset
113 - offset: 0x00000025
anatofuz
parents:
diff changeset
114 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
115 length: 1
anatofuz
parents:
diff changeset
116 pc-rel: false
anatofuz
parents:
diff changeset
117 extern: false
anatofuz
parents:
diff changeset
118 symbol: 16777215
anatofuz
parents:
diff changeset
119 - offset: 0x00000026
anatofuz
parents:
diff changeset
120 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
121 length: 0
anatofuz
parents:
diff changeset
122 pc-rel: false
anatofuz
parents:
diff changeset
123 extern: false
anatofuz
parents:
diff changeset
124 symbol: 1
anatofuz
parents:
diff changeset
125 - offset: 0x00000000
anatofuz
parents:
diff changeset
126 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
127 length: 0
anatofuz
parents:
diff changeset
128 pc-rel: false
anatofuz
parents:
diff changeset
129 extern: false
anatofuz
parents:
diff changeset
130 symbol: 16777215
anatofuz
parents:
diff changeset
131 - offset: 0x0000001C
anatofuz
parents:
diff changeset
132 scattered: true
anatofuz
parents:
diff changeset
133 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
134 length: 3
anatofuz
parents:
diff changeset
135 pc-rel: false
anatofuz
parents:
diff changeset
136 value: 0x0000004E
anatofuz
parents:
diff changeset
137 - offset: 0x0000002A
anatofuz
parents:
diff changeset
138 scattered: true
anatofuz
parents:
diff changeset
139 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
140 length: 3
anatofuz
parents:
diff changeset
141 pc-rel: false
anatofuz
parents:
diff changeset
142 value: 0x00000020
anatofuz
parents:
diff changeset
143 - offset: 0x00000018
anatofuz
parents:
diff changeset
144 scattered: true
anatofuz
parents:
diff changeset
145 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
146 length: 2
anatofuz
parents:
diff changeset
147 pc-rel: false
anatofuz
parents:
diff changeset
148 value: 0x0000004E
anatofuz
parents:
diff changeset
149 - offset: 0x00000000
anatofuz
parents:
diff changeset
150 scattered: true
anatofuz
parents:
diff changeset
151 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
152 length: 2
anatofuz
parents:
diff changeset
153 pc-rel: false
anatofuz
parents:
diff changeset
154 value: 0x00000020
anatofuz
parents:
diff changeset
155 - offset: 0x00000014
anatofuz
parents:
diff changeset
156 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
157 length: 3
anatofuz
parents:
diff changeset
158 pc-rel: false
anatofuz
parents:
diff changeset
159 extern: false
anatofuz
parents:
diff changeset
160 symbol: 1
anatofuz
parents:
diff changeset
161 - offset: 0x0000004E
anatofuz
parents:
diff changeset
162 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
163 length: 3
anatofuz
parents:
diff changeset
164 pc-rel: false
anatofuz
parents:
diff changeset
165 extern: false
anatofuz
parents:
diff changeset
166 symbol: 16777215
anatofuz
parents:
diff changeset
167 - offset: 0x00000010
anatofuz
parents:
diff changeset
168 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
169 length: 2
anatofuz
parents:
diff changeset
170 pc-rel: false
anatofuz
parents:
diff changeset
171 extern: false
anatofuz
parents:
diff changeset
172 symbol: 1
anatofuz
parents:
diff changeset
173 - offset: 0x00000000
anatofuz
parents:
diff changeset
174 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
175 length: 2
anatofuz
parents:
diff changeset
176 pc-rel: false
anatofuz
parents:
diff changeset
177 extern: false
anatofuz
parents:
diff changeset
178 symbol: 16777215
anatofuz
parents:
diff changeset
179 - offset: 0x0000000C
anatofuz
parents:
diff changeset
180 scattered: true
anatofuz
parents:
diff changeset
181 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
182 length: 3
anatofuz
parents:
diff changeset
183 pc-rel: false
anatofuz
parents:
diff changeset
184 value: 0x00000024
anatofuz
parents:
diff changeset
185 - offset: 0x00000000
anatofuz
parents:
diff changeset
186 scattered: true
anatofuz
parents:
diff changeset
187 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
188 length: 3
anatofuz
parents:
diff changeset
189 pc-rel: false
anatofuz
parents:
diff changeset
190 value: 0x00000020
anatofuz
parents:
diff changeset
191 - offset: 0x00000008
anatofuz
parents:
diff changeset
192 scattered: true
anatofuz
parents:
diff changeset
193 type: ARM_RELOC_HALF_SECTDIFF
anatofuz
parents:
diff changeset
194 length: 2
anatofuz
parents:
diff changeset
195 pc-rel: false
anatofuz
parents:
diff changeset
196 value: 0x00000024
anatofuz
parents:
diff changeset
197 - offset: 0x00000000
anatofuz
parents:
diff changeset
198 scattered: true
anatofuz
parents:
diff changeset
199 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
200 length: 2
anatofuz
parents:
diff changeset
201 pc-rel: false
anatofuz
parents:
diff changeset
202 value: 0x00000020
anatofuz
parents:
diff changeset
203 - offset: 0x00000004
anatofuz
parents:
diff changeset
204 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
205 length: 3
anatofuz
parents:
diff changeset
206 pc-rel: false
anatofuz
parents:
diff changeset
207 extern: false
anatofuz
parents:
diff changeset
208 symbol: 1
anatofuz
parents:
diff changeset
209 - offset: 0x00000025
anatofuz
parents:
diff changeset
210 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
211 length: 3
anatofuz
parents:
diff changeset
212 pc-rel: false
anatofuz
parents:
diff changeset
213 extern: false
anatofuz
parents:
diff changeset
214 symbol: 16777215
anatofuz
parents:
diff changeset
215 - offset: 0x00000000
anatofuz
parents:
diff changeset
216 type: ARM_RELOC_HALF
anatofuz
parents:
diff changeset
217 length: 2
anatofuz
parents:
diff changeset
218 pc-rel: false
anatofuz
parents:
diff changeset
219 extern: false
anatofuz
parents:
diff changeset
220 symbol: 1
anatofuz
parents:
diff changeset
221 - offset: 0x00000000
anatofuz
parents:
diff changeset
222 type: ARM_RELOC_PAIR
anatofuz
parents:
diff changeset
223 length: 2
anatofuz
parents:
diff changeset
224 pc-rel: false
anatofuz
parents:
diff changeset
225 extern: false
anatofuz
parents:
diff changeset
226 symbol: 16777215
anatofuz
parents:
diff changeset
227 local-symbols:
anatofuz
parents:
diff changeset
228 - name: _t1
anatofuz
parents:
diff changeset
229 type: N_SECT
anatofuz
parents:
diff changeset
230 sect: 1
anatofuz
parents:
diff changeset
231 desc: [ N_ARM_THUMB_DEF ]
anatofuz
parents:
diff changeset
232 value: 0x0000000000000000
anatofuz
parents:
diff changeset
233 - name: _t2
anatofuz
parents:
diff changeset
234 type: N_SECT
anatofuz
parents:
diff changeset
235 sect: 1
anatofuz
parents:
diff changeset
236 desc: [ N_ARM_THUMB_DEF ]
anatofuz
parents:
diff changeset
237 value: 0x0000000000000024
anatofuz
parents:
diff changeset
238 - name: _a2
anatofuz
parents:
diff changeset
239 type: N_SECT
anatofuz
parents:
diff changeset
240 sect: 1
anatofuz
parents:
diff changeset
241 value: 0x000000000000004E
anatofuz
parents:
diff changeset
242 - name: _a1
anatofuz
parents:
diff changeset
243 type: N_SECT
anatofuz
parents:
diff changeset
244 sect: 1
anatofuz
parents:
diff changeset
245 value: 0x0000000000000026
anatofuz
parents:
diff changeset
246 ...
anatofuz
parents:
diff changeset
247
anatofuz
parents:
diff changeset
248 # CHECK: defined-atoms:
anatofuz
parents:
diff changeset
249 # CHECK: - name: _t1
anatofuz
parents:
diff changeset
250 # CHECK: references:
anatofuz
parents:
diff changeset
251 # CHECK: - kind: modeThumbCode
anatofuz
parents:
diff changeset
252 # CHECK: offset: 0
anatofuz
parents:
diff changeset
253 # CHECK: target: _t1
anatofuz
parents:
diff changeset
254 # CHECK: - kind: thumb_movw
anatofuz
parents:
diff changeset
255 # CHECK: offset: 0
anatofuz
parents:
diff changeset
256 # CHECK: target: _t2
anatofuz
parents:
diff changeset
257 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
258 # CHECK: - kind: thumb_movt
anatofuz
parents:
diff changeset
259 # CHECK: offset: 4
anatofuz
parents:
diff changeset
260 # CHECK: target: _t2
anatofuz
parents:
diff changeset
261 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
262 # CHECK: - kind: thumb_movw_funcRel
anatofuz
parents:
diff changeset
263 # CHECK: offset: 8
anatofuz
parents:
diff changeset
264 # CHECK: target: _t2
anatofuz
parents:
diff changeset
265 # CHECK: addend: -36
anatofuz
parents:
diff changeset
266 # CHECK: - kind: thumb_movt_funcRel
anatofuz
parents:
diff changeset
267 # CHECK: offset: 12
anatofuz
parents:
diff changeset
268 # CHECK: target: _t2
anatofuz
parents:
diff changeset
269 # CHECK: addend: -36
anatofuz
parents:
diff changeset
270 # CHECK: - kind: thumb_movw
anatofuz
parents:
diff changeset
271 # CHECK: offset: 16
anatofuz
parents:
diff changeset
272 # CHECK: target: _a2
anatofuz
parents:
diff changeset
273 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
274 # CHECK: - kind: thumb_movt
anatofuz
parents:
diff changeset
275 # CHECK: offset: 20
anatofuz
parents:
diff changeset
276 # CHECK: target: _a2
anatofuz
parents:
diff changeset
277 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
278 # CHECK: - kind: thumb_movw_funcRel
anatofuz
parents:
diff changeset
279 # CHECK: offset: 24
anatofuz
parents:
diff changeset
280 # CHECK: target: _a2
anatofuz
parents:
diff changeset
281 # CHECK: addend: -36
anatofuz
parents:
diff changeset
282 # CHECK: - kind: thumb_movt_funcRel
anatofuz
parents:
diff changeset
283 # CHECK: offset: 28
anatofuz
parents:
diff changeset
284 # CHECK: target: _a2
anatofuz
parents:
diff changeset
285 # CHECK: addend: -36
anatofuz
parents:
diff changeset
286 # CHECK: - name: _t2
anatofuz
parents:
diff changeset
287 # CHECK: references:
anatofuz
parents:
diff changeset
288 # CHECK: - kind: modeThumbCode
anatofuz
parents:
diff changeset
289 # CHECK: offset: 0
anatofuz
parents:
diff changeset
290 # CHECK: target: _t2
anatofuz
parents:
diff changeset
291 # CHECK: - name: _a1
anatofuz
parents:
diff changeset
292 # CHECK: references:
anatofuz
parents:
diff changeset
293 # CHECK: - kind: arm_movw
anatofuz
parents:
diff changeset
294 # CHECK: offset: 0
anatofuz
parents:
diff changeset
295 # CHECK: target: _t2
anatofuz
parents:
diff changeset
296 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
297 # CHECK: - kind: arm_movt
anatofuz
parents:
diff changeset
298 # CHECK: offset: 4
anatofuz
parents:
diff changeset
299 # CHECK: target: _t2
anatofuz
parents:
diff changeset
300 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
301 # CHECK: - kind: arm_movw_funcRel
anatofuz
parents:
diff changeset
302 # CHECK: offset: 8
anatofuz
parents:
diff changeset
303 # CHECK: target: _t2
anatofuz
parents:
diff changeset
304 # CHECK: addend: -40
anatofuz
parents:
diff changeset
305 # CHECK: - kind: arm_movt_funcRel
anatofuz
parents:
diff changeset
306 # CHECK: offset: 12
anatofuz
parents:
diff changeset
307 # CHECK: target: _t2
anatofuz
parents:
diff changeset
308 # CHECK: addend: -40
anatofuz
parents:
diff changeset
309 # CHECK: - kind: arm_movw
anatofuz
parents:
diff changeset
310 # CHECK: offset: 16
anatofuz
parents:
diff changeset
311 # CHECK: target: _a2
anatofuz
parents:
diff changeset
312 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
313 # CHECK: - kind: arm_movt
anatofuz
parents:
diff changeset
314 # CHECK: offset: 20
anatofuz
parents:
diff changeset
315 # CHECK: target: _a2
anatofuz
parents:
diff changeset
316 # CHECK-NOT: addend:
anatofuz
parents:
diff changeset
317 # CHECK: - kind: arm_movw_funcRel
anatofuz
parents:
diff changeset
318 # CHECK: offset: 24
anatofuz
parents:
diff changeset
319 # CHECK: target: _a2
anatofuz
parents:
diff changeset
320 # CHECK: addend: -40
anatofuz
parents:
diff changeset
321 # CHECK: - kind: arm_movt_funcRel
anatofuz
parents:
diff changeset
322 # CHECK: offset: 28
anatofuz
parents:
diff changeset
323 # CHECK: target: _a2
anatofuz
parents:
diff changeset
324 # CHECK: addend: -40
anatofuz
parents:
diff changeset
325 # CHECK: - name: _a2
anatofuz
parents:
diff changeset
326
anatofuz
parents:
diff changeset
327
anatofuz
parents:
diff changeset
328 # CODE: _t1:
anatofuz
parents:
diff changeset
329 # CODE-NEXT: movw r0, #4133
anatofuz
parents:
diff changeset
330 # CODE-NEXT: movt r0, #0
anatofuz
parents:
diff changeset
331 # CODE-NEXT: movw r1, #1
anatofuz
parents:
diff changeset
332 # CODE-NEXT: movt r1, #0
anatofuz
parents:
diff changeset
333 # CODE-NEXT: movw r2, #4174
anatofuz
parents:
diff changeset
334 # CODE-NEXT: movt r2, #0
anatofuz
parents:
diff changeset
335 # CODE-NEXT: movw r3, #42
anatofuz
parents:
diff changeset
336 # CODE-NEXT: movt r3, #0
anatofuz
parents:
diff changeset
337
anatofuz
parents:
diff changeset
338
anatofuz
parents:
diff changeset
339 # CODE: _a1:
anatofuz
parents:
diff changeset
340 # CODE-NEXT: movw r0, #4133
anatofuz
parents:
diff changeset
341 # CODE-NEXT: movt r0, #0
anatofuz
parents:
diff changeset
342 # CODE-NEXT: movw r1, #65495
anatofuz
parents:
diff changeset
343 # CODE-NEXT: movt r1, #65535
anatofuz
parents:
diff changeset
344 # CODE-NEXT: movw r2, #4174
anatofuz
parents:
diff changeset
345 # CODE-NEXT: movt r2, #0
anatofuz
parents:
diff changeset
346 # CODE-NEXT: movw r3, #0
anatofuz
parents:
diff changeset
347 # CODE-NEXT: movt r3, #0
anatofuz
parents:
diff changeset
348
anatofuz
parents:
diff changeset
349
anatofuz
parents:
diff changeset
350
anatofuz
parents:
diff changeset
351 # .syntax unified
anatofuz
parents:
diff changeset
352 # .align 2
anatofuz
parents:
diff changeset
353 #
anatofuz
parents:
diff changeset
354 # .code 16
anatofuz
parents:
diff changeset
355 # .thumb_func _t1
anatofuz
parents:
diff changeset
356 #_t1:
anatofuz
parents:
diff changeset
357 # movw r0, :lower16:(_t2)
anatofuz
parents:
diff changeset
358 # movt r0, :upper16:(_t2)
anatofuz
parents:
diff changeset
359 # movw r1, :lower16:(_t2-(L0+4))
anatofuz
parents:
diff changeset
360 # movt r1, :upper16:(_t2-(L0+4))
anatofuz
parents:
diff changeset
361 # movw r2, :lower16:(_a2)
anatofuz
parents:
diff changeset
362 # movt r2, :upper16:(_a2)
anatofuz
parents:
diff changeset
363 # movw r3, :lower16:(_a2-(L0+4))
anatofuz
parents:
diff changeset
364 # movt r3, :upper16:(_a2-(L0+4))
anatofuz
parents:
diff changeset
365 #L0:
anatofuz
parents:
diff changeset
366 # add r0, pc
anatofuz
parents:
diff changeset
367 # bx lr
anatofuz
parents:
diff changeset
368 #
anatofuz
parents:
diff changeset
369 #
anatofuz
parents:
diff changeset
370 # .code 16
anatofuz
parents:
diff changeset
371 # .thumb_func _t2
anatofuz
parents:
diff changeset
372 #_t2:
anatofuz
parents:
diff changeset
373 # bx lr
anatofuz
parents:
diff changeset
374 #
anatofuz
parents:
diff changeset
375 #
anatofuz
parents:
diff changeset
376 #
anatofuz
parents:
diff changeset
377 # .code 32
anatofuz
parents:
diff changeset
378 #_a1:
anatofuz
parents:
diff changeset
379 # movw r0, :lower16:(_t2)
anatofuz
parents:
diff changeset
380 # movt r0, :upper16:(_t2)
anatofuz
parents:
diff changeset
381 # movw r1, :lower16:(_t2-(L1+8))
anatofuz
parents:
diff changeset
382 # movt r1, :upper16:(_t2-(L1+8))
anatofuz
parents:
diff changeset
383 # movw r2, :lower16:(_a2)
anatofuz
parents:
diff changeset
384 # movt r2, :upper16:(_a2)
anatofuz
parents:
diff changeset
385 # movw r3, :lower16:(_a2-(L1+8))
anatofuz
parents:
diff changeset
386 # movt r3, :upper16:(_a2-(L1+8))
anatofuz
parents:
diff changeset
387 #L1:
anatofuz
parents:
diff changeset
388 # add r0, pc
anatofuz
parents:
diff changeset
389 # bx lr
anatofuz
parents:
diff changeset
390 #
anatofuz
parents:
diff changeset
391 #_a2:
anatofuz
parents:
diff changeset
392 # bx lr
anatofuz
parents:
diff changeset
393