Correct ARM NOP encoding
[oota-llvm.git] / test / MC / ARM / arm-memory-instructions.s
1 @ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s
2   .syntax unified
3   .globl _func
4
5 @ Check that the assembler can handle the documented syntax from the ARM ARM
6 @ for loads and stores.
7
8 _func:
9 @ CHECK: _func
10
11 @------------------------------------------------------------------------------
12 @ LDR (immediate)
13 @------------------------------------------------------------------------------
14         ldr r5, [r7]
15         ldr r6, [r3, #63]
16         ldr r2, [r4, #4095]!
17         ldr r1, [r2], #30
18         ldr r3, [r1], #-30
19
20 @ CHECK: ldr    r5, [r7]                @ encoding: [0x00,0x50,0x97,0xe5]
21 @ CHECK: ldr    r6, [r3, #63]           @ encoding: [0x3f,0x60,0x93,0xe5]
22 @ CHECK: ldr    r2, [r4, #4095]!        @ encoding: [0xff,0x2f,0xb4,0xe5]
23 @ CHECK: ldr    r1, [r2], #30           @ encoding: [0x1e,0x10,0x92,0xe4]
24 @ CHECK: ldr    r3, [r1], #-30          @ encoding: [0x1e,0x30,0x11,0xe4]
25
26 @------------------------------------------------------------------------------
27 @ FIXME: LDR (literal)
28 @------------------------------------------------------------------------------
29 @ label operands currently assert the show-encoding asm comment helper due
30 @ to the use of non-contiguous bit ranges for fixups in ARM. Once that's
31 @ cleaned up, we can write useful assembly testcases for these sorts of
32 @ instructions.
33
34 @------------------------------------------------------------------------------
35 @ LDR (register)
36 @------------------------------------------------------------------------------
37         ldr r3, [r8, r1]
38         ldr r2, [r5, -r3]
39         ldr r1, [r5, r9]!
40         ldr r6, [r7, -r8]!
41         ldr r1, [r0, r2, lsr #3]!
42         ldr r5, [r9], r2
43         ldr r4, [r3], -r6
44         ldr r3, [r8, -r2, lsl #15]
45         ldr r1, [r5], r3, asr #15
46
47 @ CHECK: ldr    r3, [r8, r1]            @ encoding: [0x01,0x30,0x98,0xe7]
48 @ CHECK: ldr    r2, [r5, -r3]           @ encoding: [0x03,0x20,0x15,0xe7]
49 @ CHECK: ldr    r1, [r5, r9]!           @ encoding: [0x09,0x10,0xb5,0xe7]
50 @ CHECK: ldr    r6, [r7, -r8]!          @ encoding: [0x08,0x60,0x37,0xe7]
51 @ CHECK: ldr    r1, [r0, r2, lsr #3]!   @ encoding: [0xa2,0x11,0xb0,0xe7]
52 @ CHECK: ldr    r5, [r9], r2            @ encoding: [0x02,0x50,0x99,0xe6]
53 @ CHECK: ldr    r4, [r3], -r6           @ encoding: [0x06,0x40,0x13,0xe6]
54 @ CHECK: ldr    r3, [r8, -r2, lsl #15]  @ encoding: [0x82,0x37,0x18,0xe7]
55 @ CHECK: ldr    r1, [r5], r3, asr #15   @ encoding: [0xc3,0x17,0x95,0xe6]
56
57
58 @------------------------------------------------------------------------------
59 @ LDRB (immediate)
60 @------------------------------------------------------------------------------
61         ldrb r3, [r8]
62         ldrb r1, [sp, #63]
63         ldrb r9, [r3, #4095]!
64         ldrb r8, [r1], #22
65         ldrb r2, [r7], #-19
66
67 @ CHECK: ldrb   r3, [r8]                @ encoding: [0x00,0x30,0xd8,0xe5]
68 @ CHECK: ldrb   r1, [sp, #63]           @ encoding: [0x3f,0x10,0xdd,0xe5]
69 @ CHECK: ldrb   r9, [r3, #4095]!        @ encoding: [0xff,0x9f,0xf3,0xe5]
70 @ CHECK: ldrb   r8, [r1], #22           @ encoding: [0x16,0x80,0xd1,0xe4]
71 @ CHECK: ldrb   r2, [r7], #-19          @ encoding: [0x13,0x20,0x57,0xe4]
72
73
74 @------------------------------------------------------------------------------
75 @ LDRB (register)
76 @------------------------------------------------------------------------------
77         ldrb r9, [r8, r5]
78         ldrb r1, [r5, -r1]
79         ldrb r3, [r5, r2]!
80         ldrb r6, [r9, -r3]!
81         ldrb r2, [r1], r4
82         ldrb r8, [r4], -r5
83         ldrb r7, [r12, -r1, lsl #15]
84         ldrb r5, [r2], r9, asr #15
85
86 @ CHECK: ldrb   r9, [r8, r5]            @ encoding: [0x05,0x90,0xd8,0xe7]
87 @ CHECK: ldrb   r1, [r5, -r1]           @ encoding: [0x01,0x10,0x55,0xe7]
88 @ CHECK: ldrb   r3, [r5, r2]!           @ encoding: [0x02,0x30,0xf5,0xe7]
89 @ CHECK: ldrb   r6, [r9, -r3]!          @ encoding: [0x03,0x60,0x79,0xe7]
90 @ CHECK: ldrb   r2, [r1], r4            @ encoding: [0x04,0x20,0xd1,0xe6]
91 @ CHECK: ldrb   r8, [r4], -r5           @ encoding: [0x05,0x80,0x54,0xe6]
92 @ CHECK: ldrb   r7, [r12, -r1, lsl #15] @ encoding: [0x81,0x77,0x5c,0xe7]
93 @ CHECK: ldrb   r5, [r2], r9, asr #15   @ encoding: [0xc9,0x57,0xd2,0xe6]
94
95
96 @------------------------------------------------------------------------------
97 @ LDRBT
98 @------------------------------------------------------------------------------
99 @ FIXME: Optional offset operand.
100         ldrbt r3, [r1], #4
101         ldrbt r2, [r8], #-8
102         ldrbt r8, [r7], r6
103         ldrbt r1, [r2], -r6, lsl #12
104
105
106 @ CHECK: ldrbt  r3, [r1], #4            @ encoding: [0x04,0x30,0xf1,0xe4]
107 @ CHECK: ldrbt  r2, [r8], #-8           @ encoding: [0x08,0x20,0x78,0xe4]
108 @ CHECK: ldrbt  r8, [r7], r6            @ encoding: [0x06,0x80,0xf7,0xe6]
109 @ CHECK: ldrbt  r1, [r2], -r6, lsl #12  @ encoding: [0x06,0x16,0x72,0xe6]
110
111
112 @------------------------------------------------------------------------------
113 @ LDRD (immediate)
114 @------------------------------------------------------------------------------
115         ldrd r3, r4, [r5]
116         ldrd r7, r8, [r2, #15]
117         ldrd r1, r2, [r9, #32]!
118         ldrd r6, r7, [r1], #8
119         ldrd r1, r2, [r8], #0
120         ldrd r1, r2, [r8], #+0
121         ldrd r1, r2, [r8], #-0
122
123 @ CHECK: ldrd   r3, r4, [r5]            @ encoding: [0xd0,0x30,0xc5,0xe1]
124 @ CHECK: ldrd   r7, r8, [r2, #15]       @ encoding: [0xdf,0x70,0xc2,0xe1]
125 @ CHECK: ldrd   r1, r2, [r9, #32]!      @ encoding: [0xd0,0x12,0xe9,0xe1]
126 @ CHECK: ldrd   r6, r7, [r1], #8        @ encoding: [0xd8,0x60,0xc1,0xe0]
127 @ CHECK: ldrd   r1, r2, [r8], #0        @ encoding: [0xd0,0x10,0xc8,0xe0]
128 @ CHECK: ldrd   r1, r2, [r8], #0        @ encoding: [0xd0,0x10,0xc8,0xe0]
129 @ CHECK: ldrd   r1, r2, [r8], #-0       @ encoding: [0xd0,0x10,0x48,0xe0]
130
131
132 @------------------------------------------------------------------------------
133 @ LDRD (label)
134 @------------------------------------------------------------------------------
135         ldrd r2, r3, Lbaz
136 Lbaz: .quad 0
137
138 @ CHECK: ldrd   r2, r3, Lbaz            @ encoding: [0xd0'A',0x20'A',0x4f'A',0xe1'A']
139
140
141 @------------------------------------------------------------------------------
142 @ LDRD (register)
143 @------------------------------------------------------------------------------
144         ldrd r3, r4, [r1, r3]
145         ldrd r4, r5, [r7, r2]!
146         ldrd r1, r2, [r8], r12
147         ldrd r1, r2, [r8], -r12
148
149 @ CHECK: ldrd   r3, r4, [r1, r3]        @ encoding: [0xd3,0x30,0x81,0xe1]
150 @ CHECK: ldrd   r4, r5, [r7, r2]!       @ encoding: [0xd2,0x40,0xa7,0xe1]
151 @ CHECK: ldrd   r1, r2, [r8], r12       @ encoding: [0xdc,0x10,0x88,0xe0]
152 @ CHECK: ldrd   r1, r2, [r8], -r12      @ encoding: [0xdc,0x10,0x08,0xe0]
153
154
155 @------------------------------------------------------------------------------
156 @ LDRH (immediate)
157 @------------------------------------------------------------------------------
158         ldrh r3, [r4]
159         ldrh r2, [r7, #4]
160         ldrh r1, [r8, #64]!
161         ldrh r12, [sp], #4
162
163 @ CHECK: ldrh   r3, [r4]                @ encoding: [0xb0,0x30,0xd4,0xe1]
164 @ CHECK: ldrh   r2, [r7, #4]            @ encoding: [0xb4,0x20,0xd7,0xe1]
165 @ CHECK: ldrh   r1, [r8, #64]!          @ encoding: [0xb0,0x14,0xf8,0xe1]
166 @ CHECK: ldrh   r12, [sp], #4           @ encoding: [0xb4,0xc0,0xdd,0xe0]
167
168
169 @------------------------------------------------------------------------------
170 @ FIXME: LDRH (label)
171 @------------------------------------------------------------------------------
172
173
174 @------------------------------------------------------------------------------
175 @ LDRH (register)
176 @------------------------------------------------------------------------------
177         ldrh r6, [r5, r4]
178         ldrh r3, [r8, r11]!
179         ldrh r1, [r2, -r1]!
180         ldrh r9, [r7], r2
181         ldrh r4, [r3], -r2
182
183 @ CHECK: ldrh   r6, [r5, r4]            @ encoding: [0xb4,0x60,0x95,0xe1]
184 @ CHECK: ldrh   r3, [r8, r11]!          @ encoding: [0xbb,0x30,0xb8,0xe1]
185 @ CHECK: ldrh   r1, [r2, -r1]!          @ encoding: [0xb1,0x10,0x32,0xe1]
186 @ CHECK: ldrh   r9, [r7], r2            @ encoding: [0xb2,0x90,0x97,0xe0]
187 @ CHECK: ldrh   r4, [r3], -r2           @ encoding: [0xb2,0x40,0x13,0xe0]
188
189
190 @------------------------------------------------------------------------------
191 @ LDRHT
192 @------------------------------------------------------------------------------
193         ldrht r9, [r7], #128
194         ldrht r4, [r3], #-75
195         ldrht r9, [r7], r2
196         ldrht r4, [r3], -r2
197
198 @ CHECK: ldrht  r9, [r7], #128          @ encoding: [0xb0,0x98,0xf7,0xe0]
199 @ CHECK: ldrht  r4, [r3], #-75          @ encoding: [0xbb,0x44,0x73,0xe0]
200 @ CHECK: ldrht  r9, [r7], r2            @ encoding: [0xb2,0x90,0xb7,0xe0]
201 @ CHECK: ldrht  r4, [r3], -r2           @ encoding: [0xb2,0x40,0x33,0xe0]
202
203
204 @------------------------------------------------------------------------------
205 @ LDRSB (immediate)
206 @------------------------------------------------------------------------------
207         ldrsb r3, [r4]
208         ldrsb r2, [r7, #17]
209         ldrsb r1, [r8, #255]!
210         ldrsb r12, [sp], #9
211
212 @ CHECK: ldrsb  r3, [r4]                @ encoding: [0xd0,0x30,0xd4,0xe1]
213 @ CHECK: ldrsb  r2, [r7, #17]           @ encoding: [0xd1,0x21,0xd7,0xe1]
214 @ CHECK: ldrsb  r1, [r8, #255]!         @ encoding: [0xdf,0x1f,0xf8,0xe1]
215 @ CHECK: ldrsb  r12, [sp], #9           @ encoding: [0xd9,0xc0,0xdd,0xe0]
216
217
218 @------------------------------------------------------------------------------
219 @ FIXME: LDRSB (label)
220 @------------------------------------------------------------------------------
221
222
223 @------------------------------------------------------------------------------
224 @ LDRSB (register)
225 @------------------------------------------------------------------------------
226         ldrsb r6, [r5, r4]
227         ldrsb r3, [r8, r11]!
228         ldrsb r1, [r2, -r1]!
229         ldrsb r9, [r7], r2
230         ldrsb r4, [r3], -r2
231
232
233 @ CHECK: ldrsb  r6, [r5, r4]            @ encoding: [0xd4,0x60,0x95,0xe1]
234 @ CHECK: ldrsb  r3, [r8, r11]!          @ encoding: [0xdb,0x30,0xb8,0xe1]
235 @ CHECK: ldrsb  r1, [r2, -r1]!          @ encoding: [0xd1,0x10,0x32,0xe1]
236 @ CHECK: ldrsb  r9, [r7], r2            @ encoding: [0xd2,0x90,0x97,0xe0]
237 @ CHECK: ldrsb  r4, [r3], -r2           @ encoding: [0xd2,0x40,0x13,0xe0]
238
239
240 @------------------------------------------------------------------------------
241 @ LDRSBT
242 @------------------------------------------------------------------------------
243         ldrsbt r5, [r6], #1
244         ldrsbt r3, [r8], #-12
245         ldrsbt r8, [r9], r5
246         ldrsbt r2, [r1], -r4
247
248 @ CHECK: ldrsbt r5, [r6], #1            @ encoding: [0xd1,0x50,0xf6,0xe0]
249 @ CHECK: ldrsbt r3, [r8], #-12          @ encoding: [0xdc,0x30,0x78,0xe0]
250 @ CHECK: ldrsbt r8, [r9], r5            @ encoding: [0xd5,0x80,0xb9,0xe0]
251 @ CHECK: ldrsbt r2, [r1], -r4           @ encoding: [0xd4,0x20,0x31,0xe0]
252
253
254 @------------------------------------------------------------------------------
255 @ LDRSH (immediate)
256 @------------------------------------------------------------------------------
257         ldrsh r5, [r9]
258         ldrsh r4, [r5, #7]
259         ldrsh r3, [r6, #55]!
260         ldrsh r2, [r7], #-9
261
262 @ CHECK: ldrsh  r5, [r9]                @ encoding: [0xf0,0x50,0xd9,0xe1]
263 @ CHECK: ldrsh  r4, [r5, #7]            @ encoding: [0xf7,0x40,0xd5,0xe1]
264 @ CHECK: ldrsh  r3, [r6, #55]!          @ encoding: [0xf7,0x33,0xf6,0xe1]
265 @ CHECK: ldrsh  r2, [r7], #-9           @ encoding: [0xf9,0x20,0x57,0xe0]
266
267
268 @------------------------------------------------------------------------------
269 @ FIXME: LDRSH (label)
270 @------------------------------------------------------------------------------
271
272
273 @------------------------------------------------------------------------------
274 @ LDRSH (register)
275 @------------------------------------------------------------------------------
276         ldrsh r3, [r1, r5]
277         ldrsh r4, [r6, r1]!
278         ldrsh r5, [r3, -r6]!
279         ldrsh r6, [r9], r8
280         ldrsh r7, [r8], -r3
281
282 @ CHECK: ldrsh  r3, [r1, r5]            @ encoding: [0xf5,0x30,0x91,0xe1]
283 @ CHECK: ldrsh  r4, [r6, r1]!           @ encoding: [0xf1,0x40,0xb6,0xe1]
284 @ CHECK: ldrsh  r5, [r3, -r6]!          @ encoding: [0xf6,0x50,0x33,0xe1]
285 @ CHECK: ldrsh  r6, [r9], r8            @ encoding: [0xf8,0x60,0x99,0xe0]
286 @ CHECK: ldrsh  r7, [r8], -r3           @ encoding: [0xf3,0x70,0x18,0xe0]
287
288
289 @------------------------------------------------------------------------------
290 @ LDRSHT
291 @------------------------------------------------------------------------------
292         ldrsht r5, [r6], #1
293         ldrsht r3, [r8], #-12
294         ldrsht r8, [r9], r5
295         ldrsht r2, [r1], -r4
296
297 @ CHECK: ldrsht r5, [r6], #1            @ encoding: [0xf1,0x50,0xf6,0xe0]
298 @ CHECK: ldrsht r3, [r8], #-12          @ encoding: [0xfc,0x30,0x78,0xe0]
299 @ CHECK: ldrsht r8, [r9], r5            @ encoding: [0xf5,0x80,0xb9,0xe0]
300 @ CHECK: ldrsht r2, [r1], -r4           @ encoding: [0xf4,0x20,0x31,0xe0]
301
302
303 @------------------------------------------------------------------------------
304 @ STR (immediate)
305 @------------------------------------------------------------------------------
306         str r8, [r12]
307         str r7, [r1, #12]
308         str r3, [r5, #40]!
309         str r9, [sp], #4095
310         str r1, [r7], #-128
311
312 @ CHECK: str    r8, [r12]               @ encoding: [0x00,0x80,0x8c,0xe5]
313 @ CHECK: str    r7, [r1, #12]           @ encoding: [0x0c,0x70,0x81,0xe5]
314 @ CHECK: str    r3, [r5, #40]!          @ encoding: [0x28,0x30,0xa5,0xe5]
315 @ CHECK: str    r9, [sp], #4095         @ encoding: [0xff,0x9f,0x8d,0xe4]
316 @ CHECK: str    r1, [r7], #-128         @ encoding: [0x80,0x10,0x07,0xe4]
317
318
319 @------------------------------------------------------------------------------
320 @ FIXME: STR (literal)
321 @------------------------------------------------------------------------------
322
323 @------------------------------------------------------------------------------
324 @ STR (register)
325 @------------------------------------------------------------------------------
326         str r9, [r6, r3]
327         str r8, [r0, -r2]
328         str r7, [r1, r6]!
329         str r6, [sp, -r1]!
330         str r5, [r3], r9
331         str r4, [r2], -r5
332         str r3, [r4, -r2, lsl #2]
333         str r2, [r7], r3, asr #24
334
335 @ CHECK: str    r9, [r6, r3]            @ encoding: [0x03,0x90,0x86,0xe7]
336 @ CHECK: str    r8, [r0, -r2]           @ encoding: [0x02,0x80,0x00,0xe7]
337 @ CHECK: str    r7, [r1, r6]!           @ encoding: [0x06,0x70,0xa1,0xe7]
338 @ CHECK: str    r6, [sp, -r1]!          @ encoding: [0x01,0x60,0x2d,0xe7]
339 @ CHECK: str    r5, [r3], r9            @ encoding: [0x09,0x50,0x83,0xe6]
340 @ CHECK: str    r4, [r2], -r5           @ encoding: [0x05,0x40,0x02,0xe6]
341 @ CHECK: str    r3, [r4, -r2, lsl #2]   @ encoding: [0x02,0x31,0x04,0xe7]
342 @ CHECK: str    r2, [r7], r3, asr #24   @ encoding: [0x43,0x2c,0x87,0xe6]
343
344
345 @------------------------------------------------------------------------------
346 @ STRB (immediate)
347 @------------------------------------------------------------------------------
348         strb r9, [r2]
349         strb r7, [r1, #3]
350         strb r6, [r4, #405]!
351         strb r5, [r7], #72
352         strb r1, [sp], #-1
353
354 @ CHECK: strb   r9, [r2]                @ encoding: [0x00,0x90,0xc2,0xe5]
355 @ CHECK: strb   r7, [r1, #3]            @ encoding: [0x03,0x70,0xc1,0xe5]
356 @ CHECK: strb   r6, [r4, #405]!         @ encoding: [0x95,0x61,0xe4,0xe5]
357 @ CHECK: strb   r5, [r7], #72           @ encoding: [0x48,0x50,0xc7,0xe4]
358 @ CHECK: strb   r1, [sp], #-1           @ encoding: [0x01,0x10,0x4d,0xe4]
359
360 @------------------------------------------------------------------------------
361 @ FIXME: STRB (literal)
362 @------------------------------------------------------------------------------
363
364 @------------------------------------------------------------------------------
365 @ STRB (register)
366 @------------------------------------------------------------------------------
367         strb r1, [r2, r9]
368         strb r2, [r3, -r8]
369         strb r3, [r4, r7]!
370         strb r4, [r5, -r6]!
371         strb r5, [r6], r5
372         strb r6, [r2], -r4
373         strb r7, [r12, -r3, lsl #5]
374         strb sp, [r7], r2, asr #12
375
376 @ CHECK: strb   r1, [r2, r9]            @ encoding: [0x09,0x10,0xc2,0xe7]
377 @ CHECK: strb   r2, [r3, -r8]           @ encoding: [0x08,0x20,0x43,0xe7]
378 @ CHECK: strb   r3, [r4, r7]!           @ encoding: [0x07,0x30,0xe4,0xe7]
379 @ CHECK: strb   r4, [r5, -r6]!          @ encoding: [0x06,0x40,0x65,0xe7]
380 @ CHECK: strb   r5, [r6], r5            @ encoding: [0x05,0x50,0xc6,0xe6]
381 @ CHECK: strb   r6, [r2], -r4           @ encoding: [0x04,0x60,0x42,0xe6]
382 @ CHECK: strb   r7, [r12, -r3, lsl #5]  @ encoding: [0x83,0x72,0x4c,0xe7]
383 @ CHECK: strb   sp, [r7], r2, asr #12   @ encoding: [0x42,0xd6,0xc7,0xe6]
384
385
386 @------------------------------------------------------------------------------
387 @ STRBT
388 @------------------------------------------------------------------------------
389 @ FIXME: Optional offset operand.
390         strbt r6, [r2], #12
391         strbt r5, [r6], #-13
392         strbt r4, [r9], r5
393         strbt r3, [r8], -r2, lsl #3
394
395 @ CHECK: strbt  r6, [r2], #12           @ encoding: [0x0c,0x60,0xe2,0xe4]
396 @ CHECK: strbt  r5, [r6], #-13          @ encoding: [0x0d,0x50,0x66,0xe4]
397 @ CHECK: strbt  r4, [r9], r5            @ encoding: [0x05,0x40,0xe9,0xe6]
398 @ CHECK: strbt  r3, [r8], -r2, lsl #3   @ encoding: [0x82,0x31,0x68,0xe6]
399
400
401 @------------------------------------------------------------------------------
402 @ STRD (immediate)
403 @------------------------------------------------------------------------------
404         strd r1, r2, [r4]
405         strd r2, r3, [r6, #1]
406         strd r3, r4, [r7, #22]!
407         strd r4, r5, [r8], #7
408         strd r5, r6, [sp], #0
409         strd r6, r7, [lr], #+0
410         strd r7, r8, [r9], #-0
411
412 @ CHECK: strd   r1, r2, [r4]            @ encoding: [0xf0,0x10,0xc4,0xe1]
413 @ CHECK: strd   r2, r3, [r6, #1]        @ encoding: [0xf1,0x20,0xc6,0xe1]
414 @ CHECK: strd   r3, r4, [r7, #22]!      @ encoding: [0xf6,0x31,0xe7,0xe1]
415 @ CHECK: strd   r4, r5, [r8], #7        @ encoding: [0xf7,0x40,0xc8,0xe0]
416 @ CHECK: strd   r5, r6, [sp], #0        @ encoding: [0xf0,0x50,0xcd,0xe0]
417 @ CHECK: strd   r6, r7, [lr], #0        @ encoding: [0xf0,0x60,0xce,0xe0]
418 @ CHECK: strd   r7, r8, [r9], #-0       @ encoding: [0xf0,0x70,0x49,0xe0]
419
420
421 @------------------------------------------------------------------------------
422 @ FIXME: STRD (label)
423 @------------------------------------------------------------------------------
424
425 @------------------------------------------------------------------------------
426 @ STRD (register)
427 @------------------------------------------------------------------------------
428         strd r8, r9, [r4, r1]
429         strd r7, r8, [r3, r9]!
430         strd r6, r7, [r5], r8
431         strd r5, r6, [r12], -r10
432
433 @ CHECK: strd   r8, r9, [r4, r1]        @ encoding: [0xf1,0x80,0x84,0xe1]
434 @ CHECK: strd   r7, r8, [r3, r9]!       @ encoding: [0xf9,0x70,0xa3,0xe1]
435 @ CHECK: strd   r6, r7, [r5], r8        @ encoding: [0xf8,0x60,0x85,0xe0]
436 @ CHECK: strd   r5, r6, [r12], -r10     @ encoding: [0xfa,0x50,0x0c,0xe0]
437
438
439 @------------------------------------------------------------------------------
440 @ STRH (immediate)
441 @------------------------------------------------------------------------------
442         strh r3, [r4]
443         strh r2, [r7, #4]
444         strh r1, [r8, #64]!
445         strh r12, [sp], #4
446
447 @ CHECK: strh   r3, [r4]                @ encoding: [0xb0,0x30,0xc4,0xe1]
448 @ CHECK: strh   r2, [r7, #4]            @ encoding: [0xb4,0x20,0xc7,0xe1]
449 @ CHECK: strh   r1, [r8, #64]!          @ encoding: [0xb0,0x14,0xe8,0xe1]
450 @ CHECK: strh   r12, [sp], #4           @ encoding: [0xb4,0xc0,0xcd,0xe0]
451
452
453 @------------------------------------------------------------------------------
454 @ FIXME: STRH (label)
455 @------------------------------------------------------------------------------
456
457
458 @------------------------------------------------------------------------------
459 @ STRH (register)
460 @------------------------------------------------------------------------------
461         strh r6, [r5, r4]
462         strh r3, [r8, r11]!
463         strh r1, [r2, -r1]!
464         strh r9, [r7], r2
465         strh r4, [r3], -r2
466
467 @ CHECK: strh   r6, [r5, r4]            @ encoding: [0xb4,0x60,0x85,0xe1]
468 @ CHECK: strh   r3, [r8, r11]!          @ encoding: [0xbb,0x30,0xa8,0xe1]
469 @ CHECK: strh   r1, [r2, -r1]!          @ encoding: [0xb1,0x10,0x22,0xe1]
470 @ CHECK: strh   r9, [r7], r2            @ encoding: [0xb2,0x90,0x87,0xe0]
471 @ CHECK: strh   r4, [r3], -r2           @ encoding: [0xb2,0x40,0x03,0xe0]
472
473 @------------------------------------------------------------------------------
474 @ STRHT
475 @------------------------------------------------------------------------------
476         strht r2, [r5], #76
477         strht r8, [r1], #-25
478         strht r5, [r3], r4
479         strht r6, [r8], -r0
480
481 @ CHECK: strht  r2, [r5], #76           @ encoding: [0xbc,0x24,0xe5,0xe0]
482 @ CHECK: strht  r8, [r1], #-25          @ encoding: [0xb9,0x81,0x61,0xe0]
483 @ CHECK: strht  r5, [r3], r4            @ encoding: [0xb4,0x50,0xa3,0xe0]
484 @ CHECK: strht  r6, [r8], -r0           @ encoding: [0xb0,0x60,0x28,0xe0]