505 lines · plain
1@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s2 .syntax unified3 .globl _func4 5@ Check that the assembler can handle the documented syntax from the ARM ARM6@ for loads and stores.7 8_func:9@ CHECK: _func10 11@------------------------------------------------------------------------------12@ LDR (immediate)13@------------------------------------------------------------------------------14 ldr r5, [r7]15 ldr r6, [r3, #63]16 ldr r2, [r4, #4095]!17 ldr r1, [r2], #3018 ldr r3, [r1], #-3019 ldr r9, [r2], #-020 21@ CHECK: ldr r5, [r7] @ encoding: [0x00,0x50,0x97,0xe5]22@ CHECK: ldr r6, [r3, #63] @ encoding: [0x3f,0x60,0x93,0xe5]23@ CHECK: ldr r2, [r4, #4095]! @ encoding: [0xff,0x2f,0xb4,0xe5]24@ CHECK: ldr r1, [r2], #30 @ encoding: [0x1e,0x10,0x92,0xe4]25@ CHECK: ldr r3, [r1], #-30 @ encoding: [0x1e,0x30,0x11,0xe4]26@ CHECK: ldr r9, [r2], #-0 @ encoding: [0x00,0x90,0x12,0xe4]27 28@------------------------------------------------------------------------------29@ FIXME: LDR (literal)30@------------------------------------------------------------------------------31@ label operands currently assert the show-encoding asm comment helper due32@ to the use of non-contiguous bit ranges for fixups in ARM. Once that's33@ cleaned up, we can write useful assembly testcases for these sorts of34@ instructions.35 36@------------------------------------------------------------------------------37@ LDR (register)38@------------------------------------------------------------------------------39 ldr r3, [r8, r1]40 ldr r2, [r5, -r3]41 ldr r1, [r5, r9]!42 ldr r6, [r7, -r8]!43 ldr r1, [r0, r2, lsr #3]!44 ldr r5, [r9], r245 ldr r4, [r3], -r646 ldr r3, [r8, -r2, lsl #15]47 ldr r1, [r5], r3, asr #1548 49@ CHECK: ldr r3, [r8, r1] @ encoding: [0x01,0x30,0x98,0xe7]50@ CHECK: ldr r2, [r5, -r3] @ encoding: [0x03,0x20,0x15,0xe7]51@ CHECK: ldr r1, [r5, r9]! @ encoding: [0x09,0x10,0xb5,0xe7]52@ CHECK: ldr r6, [r7, -r8]! @ encoding: [0x08,0x60,0x37,0xe7]53@ CHECK: ldr r1, [r0, r2, lsr #3]! @ encoding: [0xa2,0x11,0xb0,0xe7]54@ CHECK: ldr r5, [r9], r2 @ encoding: [0x02,0x50,0x99,0xe6]55@ CHECK: ldr r4, [r3], -r6 @ encoding: [0x06,0x40,0x13,0xe6]56@ CHECK: ldr r3, [r8, -r2, lsl #15] @ encoding: [0x82,0x37,0x18,0xe7]57@ CHECK: ldr r1, [r5], r3, asr #15 @ encoding: [0xc3,0x17,0x95,0xe6]58 59 60@------------------------------------------------------------------------------61@ LDRB (immediate)62@------------------------------------------------------------------------------63 ldrb r3, [r8]64 ldrb r1, [sp, #63]65 ldrb r9, [r3, #4095]!66 ldrb r8, [r1], #2267 ldrb r2, [r7], #-1968 69@ CHECK: ldrb r3, [r8] @ encoding: [0x00,0x30,0xd8,0xe5]70@ CHECK: ldrb r1, [sp, #63] @ encoding: [0x3f,0x10,0xdd,0xe5]71@ CHECK: ldrb r9, [r3, #4095]! @ encoding: [0xff,0x9f,0xf3,0xe5]72@ CHECK: ldrb r8, [r1], #22 @ encoding: [0x16,0x80,0xd1,0xe4]73@ CHECK: ldrb r2, [r7], #-19 @ encoding: [0x13,0x20,0x57,0xe4]74 75 76@------------------------------------------------------------------------------77@ LDRB (register)78@------------------------------------------------------------------------------79 ldrb r9, [r8, r5]80 ldrb r1, [r5, -r1]81 ldrb r3, [r5, r2]!82 ldrb r6, [r9, -r3]!83 ldrb r2, [r1], r484 ldrb r8, [r4], -r585 ldrb r7, [r12, -r1, lsl #15]86 ldrb r5, [r2], r9, asr #1587 88@ CHECK: ldrb r9, [r8, r5] @ encoding: [0x05,0x90,0xd8,0xe7]89@ CHECK: ldrb r1, [r5, -r1] @ encoding: [0x01,0x10,0x55,0xe7]90@ CHECK: ldrb r3, [r5, r2]! @ encoding: [0x02,0x30,0xf5,0xe7]91@ CHECK: ldrb r6, [r9, -r3]! @ encoding: [0x03,0x60,0x79,0xe7]92@ CHECK: ldrb r2, [r1], r4 @ encoding: [0x04,0x20,0xd1,0xe6]93@ CHECK: ldrb r8, [r4], -r5 @ encoding: [0x05,0x80,0x54,0xe6]94@ CHECK: ldrb r7, [r12, -r1, lsl #15] @ encoding: [0x81,0x77,0x5c,0xe7]95@ CHECK: ldrb r5, [r2], r9, asr #15 @ encoding: [0xc9,0x57,0xd2,0xe6]96 97 98@------------------------------------------------------------------------------99@ LDRBT100@------------------------------------------------------------------------------101@ FIXME: Optional offset operand.102 ldrbt r3, [r1], #4103 ldrbt r2, [r8], #-8104 ldrbt r8, [r7], r6105 ldrbt r1, [r2], -r6, lsl #12106 107 108@ CHECK: ldrbt r3, [r1], #4 @ encoding: [0x04,0x30,0xf1,0xe4]109@ CHECK: ldrbt r2, [r8], #-8 @ encoding: [0x08,0x20,0x78,0xe4]110@ CHECK: ldrbt r8, [r7], r6 @ encoding: [0x06,0x80,0xf7,0xe6]111@ CHECK: ldrbt r1, [r2], -r6, lsl #12 @ encoding: [0x06,0x16,0x72,0xe6]112 113 114@------------------------------------------------------------------------------115@ LDRD (immediate)116@------------------------------------------------------------------------------117 ldrd r2, r3, [r5]118 ldrd r6, r7, [r2, #15]119 ldrd r0, r1, [r9, #32]!120 ldrd r6, r7, [r1], #8121 ldrd r0, r1, [r8], #0122 ldrd r0, r1, [r8], #+0123 ldrd r0, r1, [r8], #-0124 125@ CHECK: ldrd r2, r3, [r5] @ encoding: [0xd0,0x20,0xc5,0xe1]126@ CHECK: ldrd r6, r7, [r2, #15] @ encoding: [0xdf,0x60,0xc2,0xe1]127@ CHECK: ldrd r0, r1, [r9, #32]! @ encoding: [0xd0,0x02,0xe9,0xe1]128@ CHECK: ldrd r6, r7, [r1], #8 @ encoding: [0xd8,0x60,0xc1,0xe0]129@ CHECK: ldrd r0, r1, [r8], #0 @ encoding: [0xd0,0x00,0xc8,0xe0]130@ CHECK: ldrd r0, r1, [r8], #0 @ encoding: [0xd0,0x00,0xc8,0xe0]131@ CHECK: ldrd r0, r1, [r8], #-0 @ encoding: [0xd0,0x00,0x48,0xe0]132 133 134@------------------------------------------------------------------------------135@ LDRD (label)136@------------------------------------------------------------------------------137 ldrd r2, r3, Lbaz138Lbaz: .quad 0139 140@ CHECK: ldrd r2, r3, Lbaz @ encoding: [0xd0'A',0x20'A',0x4f'A',0xe1'A']141 142 143@------------------------------------------------------------------------------144@ LDRD (register)145@------------------------------------------------------------------------------146 ldrd r4, r5, [r1, r3]147 ldrd r4, r5, [r7, r2]!148 ldrd r0, r1, [r8], r12149 ldrd r0, r1, [r8], -r12150 151@ CHECK: ldrd r4, r5, [r1, r3] @ encoding: [0xd3,0x40,0x81,0xe1]152@ CHECK: ldrd r4, r5, [r7, r2]! @ encoding: [0xd2,0x40,0xa7,0xe1]153@ CHECK: ldrd r0, r1, [r8], r12 @ encoding: [0xdc,0x00,0x88,0xe0]154@ CHECK: ldrd r0, r1, [r8], -r12 @ encoding: [0xdc,0x00,0x08,0xe0]155 156 157@------------------------------------------------------------------------------158@ LDRH (immediate)159@------------------------------------------------------------------------------160 ldrh r3, [r4]161 ldrh r2, [r7, #4]162 ldrh r1, [r8, #64]!163 ldrh r12, [sp], #4164 165@ CHECK: ldrh r3, [r4] @ encoding: [0xb0,0x30,0xd4,0xe1]166@ CHECK: ldrh r2, [r7, #4] @ encoding: [0xb4,0x20,0xd7,0xe1]167@ CHECK: ldrh r1, [r8, #64]! @ encoding: [0xb0,0x14,0xf8,0xe1]168@ CHECK: ldrh r12, [sp], #4 @ encoding: [0xb4,0xc0,0xdd,0xe0]169 170 171@------------------------------------------------------------------------------172@ FIXME: LDRH (label)173@------------------------------------------------------------------------------174 175 176@------------------------------------------------------------------------------177@ LDRH (register)178@------------------------------------------------------------------------------179 ldrh r6, [r5, r4]180 ldrh r3, [r8, r11]!181 ldrh r1, [r2, -r1]!182 ldrh r9, [r7], r2183 ldrh r4, [r3], -r2184 185@ CHECK: ldrh r6, [r5, r4] @ encoding: [0xb4,0x60,0x95,0xe1]186@ CHECK: ldrh r3, [r8, r11]! @ encoding: [0xbb,0x30,0xb8,0xe1]187@ CHECK: ldrh r1, [r2, -r1]! @ encoding: [0xb1,0x10,0x32,0xe1]188@ CHECK: ldrh r9, [r7], r2 @ encoding: [0xb2,0x90,0x97,0xe0]189@ CHECK: ldrh r4, [r3], -r2 @ encoding: [0xb2,0x40,0x13,0xe0]190 191 192@------------------------------------------------------------------------------193@ LDRHT194@------------------------------------------------------------------------------195 ldrht r9, [r7], #128196 ldrht r4, [r3], #-75197 ldrht r4, [r3]198 ldrht r9, [r7], r2199 ldrht r4, [r3], -r2200 201@ CHECK: ldrht r9, [r7], #128 @ encoding: [0xb0,0x98,0xf7,0xe0]202@ CHECK: ldrht r4, [r3], #-75 @ encoding: [0xbb,0x44,0x73,0xe0]203@ CHECK: ldrht r4, [r3], #0 @ encoding: [0xb0,0x40,0xf3,0xe0]204@ CHECK: ldrht r9, [r7], r2 @ encoding: [0xb2,0x90,0xb7,0xe0]205@ CHECK: ldrht r4, [r3], -r2 @ encoding: [0xb2,0x40,0x33,0xe0]206 207 208@------------------------------------------------------------------------------209@ LDRSB (immediate)210@------------------------------------------------------------------------------211 ldrsb r3, [r4]212 ldrsb r2, [r7, #17]213 ldrsb r1, [r8, #255]!214 ldrsb r12, [sp], #9215 216@ CHECK: ldrsb r3, [r4] @ encoding: [0xd0,0x30,0xd4,0xe1]217@ CHECK: ldrsb r2, [r7, #17] @ encoding: [0xd1,0x21,0xd7,0xe1]218@ CHECK: ldrsb r1, [r8, #255]! @ encoding: [0xdf,0x1f,0xf8,0xe1]219@ CHECK: ldrsb r12, [sp], #9 @ encoding: [0xd9,0xc0,0xdd,0xe0]220 221 222@------------------------------------------------------------------------------223@ FIXME: LDRSB (label)224@------------------------------------------------------------------------------225 226 227@------------------------------------------------------------------------------228@ LDRSB (register)229@------------------------------------------------------------------------------230 ldrsb r6, [r5, r4]231 ldrsb r3, [r8, r11]!232 ldrsb r1, [r2, -r1]!233 ldrsb r9, [r7], r2234 ldrsb r4, [r3], -r2235 236 237@ CHECK: ldrsb r6, [r5, r4] @ encoding: [0xd4,0x60,0x95,0xe1]238@ CHECK: ldrsb r3, [r8, r11]! @ encoding: [0xdb,0x30,0xb8,0xe1]239@ CHECK: ldrsb r1, [r2, -r1]! @ encoding: [0xd1,0x10,0x32,0xe1]240@ CHECK: ldrsb r9, [r7], r2 @ encoding: [0xd2,0x90,0x97,0xe0]241@ CHECK: ldrsb r4, [r3], -r2 @ encoding: [0xd2,0x40,0x13,0xe0]242 243 244@------------------------------------------------------------------------------245@ LDRSBT246@------------------------------------------------------------------------------247 ldrsbt r5, [r6], #1248 ldrsbt r3, [r8], #-12249 ldrsbt r5, [r6]250 ldrsbt r8, [r9], r5251 ldrsbt r2, [r1], -r4252 253@ CHECK: ldrsbt r5, [r6], #1 @ encoding: [0xd1,0x50,0xf6,0xe0]254@ CHECK: ldrsbt r3, [r8], #-12 @ encoding: [0xdc,0x30,0x78,0xe0]255@ CHECK: ldrsbt r5, [r6], #0 @ encoding: [0xd0,0x50,0xf6,0xe0]256@ CHECK: ldrsbt r8, [r9], r5 @ encoding: [0xd5,0x80,0xb9,0xe0]257@ CHECK: ldrsbt r2, [r1], -r4 @ encoding: [0xd4,0x20,0x31,0xe0]258 259 260@------------------------------------------------------------------------------261@ LDRSH (immediate)262@------------------------------------------------------------------------------263 ldrsh r5, [r9]264 ldrsh r4, [r5, #7]265 ldrsh r3, [r6, #55]!266 ldrsh r2, [r7], #-9267 268@ CHECK: ldrsh r5, [r9] @ encoding: [0xf0,0x50,0xd9,0xe1]269@ CHECK: ldrsh r4, [r5, #7] @ encoding: [0xf7,0x40,0xd5,0xe1]270@ CHECK: ldrsh r3, [r6, #55]! @ encoding: [0xf7,0x33,0xf6,0xe1]271@ CHECK: ldrsh r2, [r7], #-9 @ encoding: [0xf9,0x20,0x57,0xe0]272 273 274@------------------------------------------------------------------------------275@ FIXME: LDRSH (label)276@------------------------------------------------------------------------------277 278 279@------------------------------------------------------------------------------280@ LDRSH (register)281@------------------------------------------------------------------------------282 ldrsh r3, [r1, r5]283 ldrsh r4, [r6, r1]!284 ldrsh r5, [r3, -r6]!285 ldrsh r6, [r9], r8286 ldrsh r7, [r8], -r3287 288@ CHECK: ldrsh r3, [r1, r5] @ encoding: [0xf5,0x30,0x91,0xe1]289@ CHECK: ldrsh r4, [r6, r1]! @ encoding: [0xf1,0x40,0xb6,0xe1]290@ CHECK: ldrsh r5, [r3, -r6]! @ encoding: [0xf6,0x50,0x33,0xe1]291@ CHECK: ldrsh r6, [r9], r8 @ encoding: [0xf8,0x60,0x99,0xe0]292@ CHECK: ldrsh r7, [r8], -r3 @ encoding: [0xf3,0x70,0x18,0xe0]293 294 295@------------------------------------------------------------------------------296@ LDRSHT297@------------------------------------------------------------------------------298 ldrsht r5, [r6], #1299 ldrsht r3, [r8], #-12300 ldrsht r5, [r6]301 ldrsht r8, [r9], r5302 ldrsht r2, [r1], -r4303 304@ CHECK: ldrsht r5, [r6], #1 @ encoding: [0xf1,0x50,0xf6,0xe0]305@ CHECK: ldrsht r3, [r8], #-12 @ encoding: [0xfc,0x30,0x78,0xe0]306@ CHECK: ldrsht r5, [r6], #0 @ encoding: [0xf0,0x50,0xf6,0xe0]307@ CHECK: ldrsht r8, [r9], r5 @ encoding: [0xf5,0x80,0xb9,0xe0]308@ CHECK: ldrsht r2, [r1], -r4 @ encoding: [0xf4,0x20,0x31,0xe0]309 310 311@------------------------------------------------------------------------------312@ STR (immediate)313@------------------------------------------------------------------------------314 str r8, [r12]315 str r7, [r1, #12]316 str r3, [r5, #40]!317 str r9, [sp], #4095318 str r1, [r7], #-128319 str r1, [r0], #-0320 321@ CHECK: str r8, [r12] @ encoding: [0x00,0x80,0x8c,0xe5]322@ CHECK: str r7, [r1, #12] @ encoding: [0x0c,0x70,0x81,0xe5]323@ CHECK: str r3, [r5, #40]! @ encoding: [0x28,0x30,0xa5,0xe5]324@ CHECK: str r9, [sp], #4095 @ encoding: [0xff,0x9f,0x8d,0xe4]325@ CHECK: str r1, [r7], #-128 @ encoding: [0x80,0x10,0x07,0xe4]326@ CHECK: str r1, [r0], #-0 @ encoding: [0x00,0x10,0x00,0xe4]327 328@------------------------------------------------------------------------------329@ FIXME: STR (literal)330@------------------------------------------------------------------------------331 332@------------------------------------------------------------------------------333@ STR (register)334@------------------------------------------------------------------------------335 str r9, [r6, r3]336 str r8, [r0, -r2]337 str r7, [r1, r6]!338 str r6, [sp, -r1]!339 str r5, [r3], r9340 str r4, [r2], -r5341 str r3, [r4, -r2, lsl #2]342 str r2, [r7], r3, asr #24343 344@ CHECK: str r9, [r6, r3] @ encoding: [0x03,0x90,0x86,0xe7]345@ CHECK: str r8, [r0, -r2] @ encoding: [0x02,0x80,0x00,0xe7]346@ CHECK: str r7, [r1, r6]! @ encoding: [0x06,0x70,0xa1,0xe7]347@ CHECK: str r6, [sp, -r1]! @ encoding: [0x01,0x60,0x2d,0xe7]348@ CHECK: str r5, [r3], r9 @ encoding: [0x09,0x50,0x83,0xe6]349@ CHECK: str r4, [r2], -r5 @ encoding: [0x05,0x40,0x02,0xe6]350@ CHECK: str r3, [r4, -r2, lsl #2] @ encoding: [0x02,0x31,0x04,0xe7]351@ CHECK: str r2, [r7], r3, asr #24 @ encoding: [0x43,0x2c,0x87,0xe6]352 353 354@------------------------------------------------------------------------------355@ STRB (immediate)356@------------------------------------------------------------------------------357 strb r9, [r2]358 strb r7, [r1, #3]359 strb r6, [r4, #405]!360 strb r5, [r7], #72361 strb r1, [sp], #-1362 363@ CHECK: strb r9, [r2] @ encoding: [0x00,0x90,0xc2,0xe5]364@ CHECK: strb r7, [r1, #3] @ encoding: [0x03,0x70,0xc1,0xe5]365@ CHECK: strb r6, [r4, #405]! @ encoding: [0x95,0x61,0xe4,0xe5]366@ CHECK: strb r5, [r7], #72 @ encoding: [0x48,0x50,0xc7,0xe4]367@ CHECK: strb r1, [sp], #-1 @ encoding: [0x01,0x10,0x4d,0xe4]368 369@------------------------------------------------------------------------------370@ FIXME: STRB (literal)371@------------------------------------------------------------------------------372 373@------------------------------------------------------------------------------374@ STRB (register)375@------------------------------------------------------------------------------376 strb r1, [r2, r9]377 strb r2, [r3, -r8]378 strb r3, [r4, r7]!379 strb r4, [r5, -r6]!380 strb r5, [r6], r5381 strb r6, [r2], -r4382 strb r7, [r12, -r3, lsl #5]383 strb sp, [r7], r2, asr #12384 385@ CHECK: strb r1, [r2, r9] @ encoding: [0x09,0x10,0xc2,0xe7]386@ CHECK: strb r2, [r3, -r8] @ encoding: [0x08,0x20,0x43,0xe7]387@ CHECK: strb r3, [r4, r7]! @ encoding: [0x07,0x30,0xe4,0xe7]388@ CHECK: strb r4, [r5, -r6]! @ encoding: [0x06,0x40,0x65,0xe7]389@ CHECK: strb r5, [r6], r5 @ encoding: [0x05,0x50,0xc6,0xe6]390@ CHECK: strb r6, [r2], -r4 @ encoding: [0x04,0x60,0x42,0xe6]391@ CHECK: strb r7, [r12, -r3, lsl #5] @ encoding: [0x83,0x72,0x4c,0xe7]392@ CHECK: strb sp, [r7], r2, asr #12 @ encoding: [0x42,0xd6,0xc7,0xe6]393 394 395@------------------------------------------------------------------------------396@ STRBT397@------------------------------------------------------------------------------398@ FIXME: Optional offset operand.399 strbt r6, [r2], #12400 strbt r5, [r6], #-13401 strbt r4, [r9], r5402 strbt r3, [r8], -r2, lsl #3403 404@ CHECK: strbt r6, [r2], #12 @ encoding: [0x0c,0x60,0xe2,0xe4]405@ CHECK: strbt r5, [r6], #-13 @ encoding: [0x0d,0x50,0x66,0xe4]406@ CHECK: strbt r4, [r9], r5 @ encoding: [0x05,0x40,0xe9,0xe6]407@ CHECK: strbt r3, [r8], -r2, lsl #3 @ encoding: [0x82,0x31,0x68,0xe6]408 409 410@------------------------------------------------------------------------------411@ STRD (immediate)412@------------------------------------------------------------------------------413 strd r2, r3, [r4]414 strd r2, r3, [r6, #1]415 strd r0, r1, [r7, #22]!416 strd r4, r5, [r8], #7417 strd r4, r5, [sp], #0418 strd r6, r7, [lr], #+0419 strd r10, r11, [r9], #-0420 421@ CHECK: strd r2, r3, [r4] @ encoding: [0xf0,0x20,0xc4,0xe1]422@ CHECK: strd r2, r3, [r6, #1] @ encoding: [0xf1,0x20,0xc6,0xe1]423@ CHECK: strd r0, r1, [r7, #22]! @ encoding: [0xf6,0x01,0xe7,0xe1]424@ CHECK: strd r4, r5, [r8], #7 @ encoding: [0xf7,0x40,0xc8,0xe0]425@ CHECK: strd r4, r5, [sp], #0 @ encoding: [0xf0,0x40,0xcd,0xe0]426@ CHECK: strd r6, r7, [lr], #0 @ encoding: [0xf0,0x60,0xce,0xe0]427@ CHECK: strd r10, r11, [r9], #-0 @ encoding: [0xf0,0xa0,0x49,0xe0]428 429 430@------------------------------------------------------------------------------431@ FIXME: STRD (label)432@------------------------------------------------------------------------------433 434@------------------------------------------------------------------------------435@ STRD (register)436@------------------------------------------------------------------------------437 strd r8, r9, [r4, r1]438 strd r6, r7, [r3, r9]!439 strd r6, r7, [r5], r8440 strd r4, r5, [r12], -r10441 442@ CHECK: strd r8, r9, [r4, r1] @ encoding: [0xf1,0x80,0x84,0xe1]443@ CHECK: strd r6, r7, [r3, r9]! @ encoding: [0xf9,0x60,0xa3,0xe1]444@ CHECK: strd r6, r7, [r5], r8 @ encoding: [0xf8,0x60,0x85,0xe0]445@ CHECK: strd r4, r5, [r12], -r10 @ encoding: [0xfa,0x40,0x0c,0xe0]446 447 448@------------------------------------------------------------------------------449@ STRH (immediate)450@------------------------------------------------------------------------------451 strh r3, [r4]452 strh r2, [r7, #4]453 strh r1, [r8, #64]!454 strh r12, [sp], #4455 456@ CHECK: strh r3, [r4] @ encoding: [0xb0,0x30,0xc4,0xe1]457@ CHECK: strh r2, [r7, #4] @ encoding: [0xb4,0x20,0xc7,0xe1]458@ CHECK: strh r1, [r8, #64]! @ encoding: [0xb0,0x14,0xe8,0xe1]459@ CHECK: strh r12, [sp], #4 @ encoding: [0xb4,0xc0,0xcd,0xe0]460 461 462@------------------------------------------------------------------------------463@ FIXME: STRH (label)464@------------------------------------------------------------------------------465 466 467@------------------------------------------------------------------------------468@ STRH (register)469@------------------------------------------------------------------------------470 strh r6, [r5, r4]471 strh r3, [r8, r11]!472 strh r1, [r2, -r1]!473 strh r9, [r7], r2474 strh r4, [r3], -r2475 476@ CHECK: strh r6, [r5, r4] @ encoding: [0xb4,0x60,0x85,0xe1]477@ CHECK: strh r3, [r8, r11]! @ encoding: [0xbb,0x30,0xa8,0xe1]478@ CHECK: strh r1, [r2, -r1]! @ encoding: [0xb1,0x10,0x22,0xe1]479@ CHECK: strh r9, [r7], r2 @ encoding: [0xb2,0x90,0x87,0xe0]480@ CHECK: strh r4, [r3], -r2 @ encoding: [0xb2,0x40,0x03,0xe0]481 482@------------------------------------------------------------------------------483@ STRHT484@------------------------------------------------------------------------------485 strht r2, [r5], #76486 strht r8, [r1], #-25487 strht r5, [r3], r4488 strht r6, [r8], -r0489 490@ CHECK: strht r2, [r5], #76 @ encoding: [0xbc,0x24,0xe5,0xe0]491@ CHECK: strht r8, [r1], #-25 @ encoding: [0xb9,0x81,0x61,0xe0]492@ CHECK: strht r5, [r3], r4 @ encoding: [0xb4,0x50,0xa3,0xe0]493@ CHECK: strht r6, [r8], -r0 @ encoding: [0xb0,0x60,0x28,0xe0]494 495@------------------------------------------------------------------------------496@ GNU Assembler Compatibility497@------------------------------------------------------------------------------498 499 ldrd r0, [sp]500 strd r0, [sp]501 502@ CHECK: ldrd r0, r1, [sp] @ encoding: [0xd0,0x00,0xcd,0xe1]503@ CHECK: strd r0, r1, [sp] @ encoding: [0xf0,0x00,0xcd,0xe1]504 505