@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7 -show-encoding < %s | FileCheck %s
ldr r0, [r0, r0]
ldr r0, [r0, r0, lsr ldr r0, [r0, r0, lsr ldr r0, [r0, r0, lsl ldr r0, [r0, r0, lsl ldr r0, [r0, r0, asr ldr r0, [r0, r0, asr ldr r0, [r0, r0, rrx]
ldr r0, [r0, r0, ror
@ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7]
@ CHECK: ldr r0, [r0, r0, lsr @ CHECK: ldr r0, [r0, r0, lsr @ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7]
@ CHECK: ldr r0, [r0, r0, lsl @ CHECK: ldr r0, [r0, r0, asr @ CHECK: ldr r0, [r0, r0, asr @ CHECK: ldr r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x90,0xe7]
@ CHECK: ldr r0, [r0, r0, ror
pld [r0, r0]
pld [r0, r0, lsr pld [r0, r0, lsr pld [r0, r0, lsl pld [r0, r0, lsl pld [r0, r0, asr pld [r0, r0, asr pld [r0, r0, rrx]
pld [r0, r0, ror
@ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7]
@ CHECK: [r0, r0, lsr @ CHECK: [r0, r0, lsr @ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7]
@ CHECK: [r0, r0, lsl @ CHECK: [r0, r0, asr @ CHECK: [r0, r0, asr @ CHECK: [r0, r0, rrx] @ encoding: [0x60,0xf0,0xd0,0xf7]
@ CHECK: [r0, r0, ror
str r0, [r0, r0]
str r0, [r0, r0, lsr str r0, [r0, r0, lsr str r0, [r0, r0, lsl str r0, [r0, r0, lsl str r0, [r0, r0, asr str r0, [r0, r0, asr str r0, [r0, r0, rrx]
str r0, [r0, r0, ror
@ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7]
@ CHECK: str r0, [r0, r0, lsr @ CHECK: str r0, [r0, r0, lsr @ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7]
@ CHECK: str r0, [r0, r0, lsl @ CHECK: str r0, [r0, r0, asr @ CHECK: str r0, [r0, r0, asr @ CHECK: str r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x80,0xe7]
@ CHECK: str r0, [r0, r0, ror
@ Uses printAddrMode2OffsetOperand(), used by LDRBT_POST_IMM LDRBT_POST_REG
@ LDRB_POST_IMM LDRB_POST_REG LDRT_POST_IMM LDRT_POST_REG LDR_POST_IMM
@ LDR_POST_REG STRBT_POST_IMM STRBT_POST_REG STRB_POST_IMM STRB_POST_REG
@ STRT_POST_IMM STRT_POST_REG STR_POST_IMM STR_POST_REG
ldr r0, [r1], r2, rrx
ldr r3, [r4], r5, ror str r6, [r7], r8, lsl str r9, [r10], r11
@ CHECK: ldr r0, [r1], r2, rrx @ encoding: [0x62,0x00,0x91,0xe6]
@ CHECK: ldr r3, [r4], r5 @ encoding: [0x05,0x30,0x94,0xe6]
@ CHECK: str r6, [r7], r8 @ encoding: [0x08,0x60,0x87,0xe6]
@ CHECK: str r9, [r10], r11 @ encoding: [0x0b,0x90,0x8a,0xe6]
@ Uses printSORegImmOperand(), used by ADCrsi ADDrsi ANDrsi BICrsi EORrsi
@ ORRrsi RSBrsi RSCrsi SBCrsi SUBrsi CMNzrsi CMPrsi MOVsi MVNsi TEQrsi TSTrsi
adc sp, lr, pc
adc r1, r8, r9, lsr adc r2, r7, pc, lsr adc r3, r6, r10, lsl adc r4, r5, lr, lsl adc r5, r4, r11, asr adc r6, r3, sp, asr adc r7, r2, r12, rrx
adc r8, r1, r0, ror
@ CHECK: adc sp, lr, pc @ encoding: [0x0f,0xd0,0xae,0xe0]
@ CHECK: adc r1, r8, r9, lsr @ CHECK: adc r2, r7, pc, lsr @ CHECK: adc r3, r6, r10 @ encoding: [0x0a,0x30,0xa6,0xe0]
@ CHECK: adc r4, r5, lr, lsl @ CHECK: adc r5, r4, r11, asr @ CHECK: adc r6, r3, sp, asr @ CHECK: adc r7, r2, r12, rrx @ encoding: [0x6c,0x70,0xa2,0xe0]
@ CHECK: adc r8, r1, r0, ror
cmp sp, lr
cmp r1, r8, lsr cmp r2, r7, lsr cmp r3, r6, lsl cmp r4, r5, lsl cmp r5, r4, asr cmp r6, r3, asr cmp r7, r2, rrx
cmp r8, r1, ror
@ CHECK: cmp sp, lr @ encoding: [0x0e,0x00,0x5d,0xe1]
@ CHECK: cmp r1, r8, lsr @ CHECK: cmp r2, r7, lsr @ CHECK: cmp r3, r6 @ encoding: [0x06,0x00,0x53,0xe1]
@ CHECK: cmp r4, r5, lsl @ CHECK: cmp r5, r4, asr @ CHECK: cmp r6, r3, asr @ CHECK: cmp r7, r2, rrx @ encoding: [0x62,0x00,0x57,0xe1]
@ CHECK: cmp r8, r1, ror