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 @ FIXME: LDRD (label) 134 @------------------------------------------------------------------------------ 135 136 @------------------------------------------------------------------------------ 137 @ LDRD (register) 138 @------------------------------------------------------------------------------ 139 ldrd r3, r4, [r1, r3] 140 ldrd r4, r5, [r7, r2]! 141 ldrd r1, r2, [r8], r12 142 ldrd r1, r2, [r8], -r12 143 144 @ CHECK: ldrd r3, r4, [r1, r3] @ encoding: [0xd3,0x30,0x81,0xe1] 145 @ CHECK: ldrd r4, r5, [r7, r2]! @ encoding: [0xd2,0x40,0xa7,0xe1] 146 @ CHECK: ldrd r1, r2, [r8], r12 @ encoding: [0xdc,0x10,0x88,0xe0] 147 @ CHECK: ldrd r1, r2, [r8], -r12 @ encoding: [0xdc,0x10,0x08,0xe0] 148 149 150 @------------------------------------------------------------------------------ 151 @ LDRH (immediate) 152 @------------------------------------------------------------------------------ 153 ldrh r3, [r4] 154 ldrh r2, [r7, #4] 155 ldrh r1, [r8, #64]! 156 ldrh r12, [sp], #4 157 158 @ CHECK: ldrh r3, [r4] @ encoding: [0xb0,0x30,0xd4,0xe1] 159 @ CHECK: ldrh r2, [r7, #4] @ encoding: [0xb4,0x20,0xd7,0xe1] 160 @ CHECK: ldrh r1, [r8, #64]! @ encoding: [0xb0,0x14,0xf8,0xe1] 161 @ CHECK: ldrh r12, [sp], #4 @ encoding: [0xb4,0xc0,0xdd,0xe0] 162 163 164 @------------------------------------------------------------------------------ 165 @ FIXME: LDRH (label) 166 @------------------------------------------------------------------------------ 167 168 169 @------------------------------------------------------------------------------ 170 @ LDRH (register) 171 @------------------------------------------------------------------------------ 172 ldrh r6, [r5, r4] 173 ldrh r3, [r8, r11]! 174 ldrh r1, [r2, -r1]! 175 ldrh r9, [r7], r2 176 ldrh r4, [r3], -r2 177 178 @ CHECK: ldrh r6, [r5, r4] @ encoding: [0xb4,0x60,0x95,0xe1] 179 @ CHECK: ldrh r3, [r8, r11]! @ encoding: [0xbb,0x30,0xb8,0xe1] 180 @ CHECK: ldrh r1, [r2, -r1]! @ encoding: [0xb1,0x10,0x32,0xe1] 181 @ CHECK: ldrh r9, [r7], r2 @ encoding: [0xb2,0x90,0x97,0xe0] 182 @ CHECK: ldrh r4, [r3], -r2 @ encoding: [0xb2,0x40,0x13,0xe0] 183 184 185 @------------------------------------------------------------------------------ 186 @ LDRHT 187 @------------------------------------------------------------------------------ 188 ldrht r9, [r7], #128 189 ldrht r4, [r3], #-75 190 ldrht r9, [r7], r2 191 ldrht r4, [r3], -r2 192 193 @ CHECK: ldrht r9, [r7], #128 @ encoding: [0xb0,0x98,0xf7,0xe0] 194 @ CHECK: ldrht r4, [r3], #-75 @ encoding: [0xbb,0x44,0x73,0xe0] 195 @ CHECK: ldrht r9, [r7], r2 @ encoding: [0xb2,0x90,0xb7,0xe0] 196 @ CHECK: ldrht r4, [r3], -r2 @ encoding: [0xb2,0x40,0x33,0xe0] 197 198 199 @------------------------------------------------------------------------------ 200 @ LDRSB (immediate) 201 @------------------------------------------------------------------------------ 202 ldrsb r3, [r4] 203 ldrsb r2, [r7, #17] 204 ldrsb r1, [r8, #255]! 205 ldrsb r12, [sp], #9 206 207 @ CHECK: ldrsb r3, [r4] @ encoding: [0xd0,0x30,0xd4,0xe1] 208 @ CHECK: ldrsb r2, [r7, #17] @ encoding: [0xd1,0x21,0xd7,0xe1] 209 @ CHECK: ldrsb r1, [r8, #255]! @ encoding: [0xdf,0x1f,0xf8,0xe1] 210 @ CHECK: ldrsb r12, [sp], #9 @ encoding: [0xd9,0xc0,0xdd,0xe0] 211 212 213 @------------------------------------------------------------------------------ 214 @ FIXME: LDRSB (label) 215 @------------------------------------------------------------------------------ 216 217 218 @------------------------------------------------------------------------------ 219 @ LDRSB (register) 220 @------------------------------------------------------------------------------ 221 ldrsb r6, [r5, r4] 222 ldrsb r3, [r8, r11]! 223 ldrsb r1, [r2, -r1]! 224 ldrsb r9, [r7], r2 225 ldrsb r4, [r3], -r2 226 227 228 @ CHECK: ldrsb r6, [r5, r4] @ encoding: [0xd4,0x60,0x95,0xe1] 229 @ CHECK: ldrsb r3, [r8, r11]! @ encoding: [0xdb,0x30,0xb8,0xe1] 230 @ CHECK: ldrsb r1, [r2, -r1]! @ encoding: [0xd1,0x10,0x32,0xe1] 231 @ CHECK: ldrsb r9, [r7], r2 @ encoding: [0xd2,0x90,0x97,0xe0] 232 @ CHECK: ldrsb r4, [r3], -r2 @ encoding: [0xd2,0x40,0x13,0xe0] 233 234 235 @------------------------------------------------------------------------------ 236 @ LDRSBT 237 @------------------------------------------------------------------------------ 238 ldrsbt r5, [r6], #1 239 ldrsbt r3, [r8], #-12 240 ldrsbt r8, [r9], r5 241 ldrsbt r2, [r1], -r4 242 243 @ CHECK: ldrsbt r5, [r6], #1 @ encoding: [0xd1,0x50,0xf6,0xe0] 244 @ CHECK: ldrsbt r3, [r8], #-12 @ encoding: [0xdc,0x30,0x78,0xe0] 245 @ CHECK: ldrsbt r8, [r9], r5 @ encoding: [0xd5,0x80,0xb9,0xe0] 246 @ CHECK: ldrsbt r2, [r1], -r4 @ encoding: [0xd4,0x20,0x31,0xe0] 247 248 249 @------------------------------------------------------------------------------ 250 @ LDRSH (immediate) 251 @------------------------------------------------------------------------------ 252 ldrsh r5, [r9] 253 ldrsh r4, [r5, #7] 254 ldrsh r3, [r6, #55]! 255 ldrsh r2, [r7], #-9 256 257 @ CHECK: ldrsh r5, [r9] @ encoding: [0xf0,0x50,0xd9,0xe1] 258 @ CHECK: ldrsh r4, [r5, #7] @ encoding: [0xf7,0x40,0xd5,0xe1] 259 @ CHECK: ldrsh r3, [r6, #55]! @ encoding: [0xf7,0x33,0xf6,0xe1] 260 @ CHECK: ldrsh r2, [r7], #-9 @ encoding: [0xf9,0x20,0x57,0xe0] 261 262 263 @------------------------------------------------------------------------------ 264 @ FIXME: LDRSH (label) 265 @------------------------------------------------------------------------------ 266 267 268 @------------------------------------------------------------------------------ 269 @ LDRSH (register) 270 @------------------------------------------------------------------------------ 271 ldrsh r3, [r1, r5] 272 ldrsh r4, [r6, r1]! 273 ldrsh r5, [r3, -r6]! 274 ldrsh r6, [r9], r8 275 ldrsh r7, [r8], -r3 276 277 @ CHECK: ldrsh r3, [r1, r5] @ encoding: [0xf5,0x30,0x91,0xe1] 278 @ CHECK: ldrsh r4, [r6, r1]! @ encoding: [0xf1,0x40,0xb6,0xe1] 279 @ CHECK: ldrsh r5, [r3, -r6]! @ encoding: [0xf6,0x50,0x33,0xe1] 280 @ CHECK: ldrsh r6, [r9], r8 @ encoding: [0xf8,0x60,0x99,0xe0] 281 @ CHECK: ldrsh r7, [r8], -r3 @ encoding: [0xf3,0x70,0x18,0xe0] 282 283 284 @------------------------------------------------------------------------------ 285 @ LDRSHT 286 @------------------------------------------------------------------------------ 287 ldrsht r5, [r6], #1 288 ldrsht r3, [r8], #-12 289 ldrsht r8, [r9], r5 290 ldrsht r2, [r1], -r4 291 292 @ CHECK: ldrsht r5, [r6], #1 @ encoding: [0xf1,0x50,0xf6,0xe0] 293 @ CHECK: ldrsht r3, [r8], #-12 @ encoding: [0xfc,0x30,0x78,0xe0] 294 @ CHECK: ldrsht r8, [r9], r5 @ encoding: [0xf5,0x80,0xb9,0xe0] 295 @ CHECK: ldrsht r2, [r1], -r4 @ encoding: [0xf4,0x20,0x31,0xe0] 296 297 298 @------------------------------------------------------------------------------ 299 @ STR (immediate) 300 @------------------------------------------------------------------------------ 301 str r8, [r12] 302 str r7, [r1, #12] 303 str r3, [r5, #40]! 304 str r9, [sp], #4095 305 str r1, [r7], #-128 306 307 @ CHECK: str r8, [r12] @ encoding: [0x00,0x80,0x8c,0xe5] 308 @ CHECK: str r7, [r1, #12] @ encoding: [0x0c,0x70,0x81,0xe5] 309 @ CHECK: str r3, [r5, #40]! @ encoding: [0x28,0x30,0xa5,0xe5] 310 @ CHECK: str r9, [sp], #4095 @ encoding: [0xff,0x9f,0x8d,0xe4] 311 @ CHECK: str r1, [r7], #-128 @ encoding: [0x80,0x10,0x07,0xe4] 312 313 314 @------------------------------------------------------------------------------ 315 @ FIXME: STR (literal) 316 @------------------------------------------------------------------------------ 317 318 @------------------------------------------------------------------------------ 319 @ STR (register) 320 @------------------------------------------------------------------------------ 321 str r9, [r6, r3] 322 str r8, [r0, -r2] 323 str r7, [r1, r6]! 324 str r6, [sp, -r1]! 325 str r5, [r3], r9 326 str r4, [r2], -r5 327 str r3, [r4, -r2, lsl #2] 328 str r2, [r7], r3, asr #24 329 330 @ CHECK: str r9, [r6, r3] @ encoding: [0x03,0x90,0x86,0xe7] 331 @ CHECK: str r8, [r0, -r2] @ encoding: [0x02,0x80,0x00,0xe7] 332 @ CHECK: str r7, [r1, r6]! @ encoding: [0x06,0x70,0xa1,0xe7] 333 @ CHECK: str r6, [sp, -r1]! @ encoding: [0x01,0x60,0x2d,0xe7] 334 @ CHECK: str r5, [r3], r9 @ encoding: [0x09,0x50,0x83,0xe6] 335 @ CHECK: str r4, [r2], -r5 @ encoding: [0x05,0x40,0x02,0xe6] 336 @ CHECK: str r3, [r4, -r2, lsl #2] @ encoding: [0x02,0x31,0x04,0xe7] 337 @ CHECK: str r2, [r7], r3, asr #24 @ encoding: [0x43,0x2c,0x87,0xe6] 338 339 340 @------------------------------------------------------------------------------ 341 @ STRB (immediate) 342 @------------------------------------------------------------------------------ 343 strb r9, [r2] 344 strb r7, [r1, #3] 345 strb r6, [r4, #405]! 346 strb r5, [r7], #72 347 strb r1, [sp], #-1 348 349 @ CHECK: strb r9, [r2] @ encoding: [0x00,0x90,0xc2,0xe5] 350 @ CHECK: strb r7, [r1, #3] @ encoding: [0x03,0x70,0xc1,0xe5] 351 @ CHECK: strb r6, [r4, #405]! @ encoding: [0x95,0x61,0xe4,0xe5] 352 @ CHECK: strb r5, [r7], #72 @ encoding: [0x48,0x50,0xc7,0xe4] 353 @ CHECK: strb r1, [sp], #-1 @ encoding: [0x01,0x10,0x4d,0xe4] 354 355 @------------------------------------------------------------------------------ 356 @ FIXME: STRB (literal) 357 @------------------------------------------------------------------------------ 358 359 @------------------------------------------------------------------------------ 360 @ STRB (register) 361 @------------------------------------------------------------------------------ 362 strb r1, [r2, r9] 363 strb r2, [r3, -r8] 364 strb r3, [r4, r7]! 365 strb r4, [r5, -r6]! 366 strb r5, [r6], r5 367 strb r6, [r2], -r4 368 strb r7, [r12, -r3, lsl #5] 369 strb sp, [r7], r2, asr #12 370 371 @ CHECK: strb r1, [r2, r9] @ encoding: [0x09,0x10,0xc2,0xe7] 372 @ CHECK: strb r2, [r3, -r8] @ encoding: [0x08,0x20,0x43,0xe7] 373 @ CHECK: strb r3, [r4, r7]! @ encoding: [0x07,0x30,0xe4,0xe7] 374 @ CHECK: strb r4, [r5, -r6]! @ encoding: [0x06,0x40,0x65,0xe7] 375 @ CHECK: strb r5, [r6], r5 @ encoding: [0x05,0x50,0xc6,0xe6] 376 @ CHECK: strb r6, [r2], -r4 @ encoding: [0x04,0x60,0x42,0xe6] 377 @ CHECK: strb r7, [r12, -r3, lsl #5] @ encoding: [0x83,0x72,0x4c,0xe7] 378 @ CHECK: strb sp, [r7], r2, asr #12 @ encoding: [0x42,0xd6,0xc7,0xe6] 379 380 381 @------------------------------------------------------------------------------ 382 @ STRBT 383 @------------------------------------------------------------------------------ 384 @ FIXME: Optional offset operand. 385 strbt r6, [r2], #12 386 strbt r5, [r6], #-13 387 strbt r4, [r9], r5 388 strbt r3, [r8], -r2, lsl #3 389 390 @ CHECK: strbt r6, [r2], #12 @ encoding: [0x0c,0x60,0xe2,0xe4] 391 @ CHECK: strbt r5, [r6], #-13 @ encoding: [0x0d,0x50,0x66,0xe4] 392 @ CHECK: strbt r4, [r9], r5 @ encoding: [0x05,0x40,0xe9,0xe6] 393 @ CHECK: strbt r3, [r8], -r2, lsl #3 @ encoding: [0x82,0x31,0x68,0xe6] 394 395 396 @------------------------------------------------------------------------------ 397 @ STRD (immediate) 398 @------------------------------------------------------------------------------ 399 strd r1, r2, [r4] 400 strd r2, r3, [r6, #1] 401 strd r3, r4, [r7, #22]! 402 strd r4, r5, [r8], #7 403 strd r5, r6, [sp], #0 404 strd r6, r7, [lr], #+0 405 strd r7, r8, [r9], #-0 406 407 @ CHECK: strd r1, r2, [r4] @ encoding: [0xf0,0x10,0xc4,0xe1] 408 @ CHECK: strd r2, r3, [r6, #1] @ encoding: [0xf1,0x20,0xc6,0xe1] 409 @ CHECK: strd r3, r4, [r7, #22]! @ encoding: [0xf6,0x31,0xe7,0xe1] 410 @ CHECK: strd r4, r5, [r8], #7 @ encoding: [0xf7,0x40,0xc8,0xe0] 411 @ CHECK: strd r5, r6, [sp], #0 @ encoding: [0xf0,0x50,0xcd,0xe0] 412 @ CHECK: strd r6, r7, [lr], #0 @ encoding: [0xf0,0x60,0xce,0xe0] 413 @ CHECK: strd r7, r8, [r9], #-0 @ encoding: [0xf0,0x70,0x49,0xe0] 414 415 416 @------------------------------------------------------------------------------ 417 @ FIXME: STRD (label) 418 @------------------------------------------------------------------------------ 419 420 @------------------------------------------------------------------------------ 421 @ STRD (register) 422 @------------------------------------------------------------------------------ 423 strd r8, r9, [r4, r1] 424 strd r7, r8, [r3, r9]! 425 strd r6, r7, [r5], r8 426 strd r5, r6, [r12], -r10 427 428 @ CHECK: strd r8, r9, [r4, r1] @ encoding: [0xf1,0x80,0x84,0xe1] 429 @ CHECK: strd r7, r8, [r3, r9]! @ encoding: [0xf9,0x70,0xa3,0xe1] 430 @ CHECK: strd r6, r7, [r5], r8 @ encoding: [0xf8,0x60,0x85,0xe0] 431 @ CHECK: strd r5, r6, [r12], -r10 @ encoding: [0xfa,0x50,0x0c,0xe0] 432 433 434 @------------------------------------------------------------------------------ 435 @ STRH (immediate) 436 @------------------------------------------------------------------------------ 437 strh r3, [r4] 438 strh r2, [r7, #4] 439 strh r1, [r8, #64]! 440 strh r12, [sp], #4 441 442 @ CHECK: strh r3, [r4] @ encoding: [0xb0,0x30,0xc4,0xe1] 443 @ CHECK: strh r2, [r7, #4] @ encoding: [0xb4,0x20,0xc7,0xe1] 444 @ CHECK: strh r1, [r8, #64]! @ encoding: [0xb0,0x14,0xe8,0xe1] 445 @ CHECK: strh r12, [sp], #4 @ encoding: [0xb4,0xc0,0xcd,0xe0] 446 447 448 @------------------------------------------------------------------------------ 449 @ FIXME: STRH (label) 450 @------------------------------------------------------------------------------ 451 452 453 @------------------------------------------------------------------------------ 454 @ STRH (register) 455 @------------------------------------------------------------------------------ 456 strh r6, [r5, r4] 457 strh r3, [r8, r11]! 458 strh r1, [r2, -r1]! 459 strh r9, [r7], r2 460 strh r4, [r3], -r2 461 462 @ CHECK: strh r6, [r5, r4] @ encoding: [0xb4,0x60,0x85,0xe1] 463 @ CHECK: strh r3, [r8, r11]! @ encoding: [0xbb,0x30,0xa8,0xe1] 464 @ CHECK: strh r1, [r2, -r1]! @ encoding: [0xb1,0x10,0x22,0xe1] 465 @ CHECK: strh r9, [r7], r2 @ encoding: [0xb2,0x90,0x87,0xe0] 466 @ CHECK: strh r4, [r3], -r2 @ encoding: [0xb2,0x40,0x03,0xe0] 467 468 @------------------------------------------------------------------------------ 469 @ STRHT 470 @------------------------------------------------------------------------------ 471 strht r2, [r5], #76 472 strht r8, [r1], #-25 473 strht r5, [r3], r4 474 strht r6, [r8], -r0 475 476 @ CHECK: strht r2, [r5], #76 @ encoding: [0xbc,0x24,0xe5,0xe0] 477 @ CHECK: strht r8, [r1], #-25 @ encoding: [0xb9,0x81,0x61,0xe0] 478 @ CHECK: strht r5, [r3], r4 @ encoding: [0xb4,0x50,0xa3,0xe0] 479 @ CHECK: strht r6, [r8], -r0 @ encoding: [0xb0,0x60,0x28,0xe0] 480