193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7 -show-encoding < %s | FileCheck %s 293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0] 493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, lsr #32] 593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, lsr #16] 693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, lsl #0] 793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, lsl #16] 893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, asr #32] 993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, asr #16] 1093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, rrx] 1193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r0, r0, ror #16] 1293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 1393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7] 1493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, lsr #32] @ encoding: [0x20,0x00,0x90,0xe7] 1593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, lsr #16] @ encoding: [0x20,0x08,0x90,0xe7] 1693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7] 1793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, lsl #16] @ encoding: [0x00,0x08,0x90,0xe7] 1893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, asr #32] @ encoding: [0x40,0x00,0x90,0xe7] 1993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, asr #16] @ encoding: [0x40,0x08,0x90,0xe7] 2093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x90,0xe7] 2193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r0, r0, ror #16] @ encoding: [0x60,0x08,0x90,0xe7] 2293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 2393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0] 2493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, lsr #32] 2593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, lsr #16] 2693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, lsl #0] 2793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, lsl #16] 2893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, asr #32] 2993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, asr #16] 3093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, rrx] 3193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover pld [r0, r0, ror #16] 3293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 3393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7] 3493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, lsr #32] @ encoding: [0x20,0xf0,0xd0,0xf7] 3593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, lsr #16] @ encoding: [0x20,0xf8,0xd0,0xf7] 3693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7] 3793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, lsl #16] @ encoding: [0x00,0xf8,0xd0,0xf7] 3893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, asr #32] @ encoding: [0x40,0xf0,0xd0,0xf7] 3993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, asr #16] @ encoding: [0x40,0xf8,0xd0,0xf7] 4093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, rrx] @ encoding: [0x60,0xf0,0xd0,0xf7] 4193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: [r0, r0, ror #16] @ encoding: [0x60,0xf8,0xd0,0xf7] 4293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 4393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0] 4493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, lsr #32] 4593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, lsr #16] 4693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, lsl #0] 4793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, lsl #16] 4893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, asr #32] 4993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, asr #16] 5093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, rrx] 5193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r0, [r0, r0, ror #16] 5293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 5393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7] 5493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, lsr #32] @ encoding: [0x20,0x00,0x80,0xe7] 5593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, lsr #16] @ encoding: [0x20,0x08,0x80,0xe7] 5693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7] 5793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, lsl #16] @ encoding: [0x00,0x08,0x80,0xe7] 5893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, asr #32] @ encoding: [0x40,0x00,0x80,0xe7] 5993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, asr #16] @ encoding: [0x40,0x08,0x80,0xe7] 6093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x80,0xe7] 6193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r0, [r0, r0, ror #16] @ encoding: [0x60,0x08,0x80,0xe7] 6293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 6393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ Uses printAddrMode2OffsetOperand(), used by LDRBT_POST_IMM LDRBT_POST_REG 6493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ LDRB_POST_IMM LDRB_POST_REG LDRT_POST_IMM LDRT_POST_REG LDR_POST_IMM 6593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ LDR_POST_REG STRBT_POST_IMM STRBT_POST_REG STRB_POST_IMM STRB_POST_REG 6693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ STRT_POST_IMM STRT_POST_REG STR_POST_IMM STR_POST_REG 6793c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 6893c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r0, [r1], r2, rrx 6993c7c449a1351542fa5a275587187154dbedb8e0Tim Northover ldr r3, [r4], r5, ror #0 7093c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r6, [r7], r8, lsl #0 7193c7c449a1351542fa5a275587187154dbedb8e0Tim Northover str r9, [r10], r11 7293c7c449a1351542fa5a275587187154dbedb8e0Tim Northover 7393c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r0, [r1], r2, rrx @ encoding: [0x62,0x00,0x91,0xe6] 7493c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: ldr r3, [r4], r5 @ encoding: [0x05,0x30,0x94,0xe6] 7593c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r6, [r7], r8 @ encoding: [0x08,0x60,0x87,0xe6] 7693c7c449a1351542fa5a275587187154dbedb8e0Tim Northover@ CHECK: str r9, [r10], r11 @ encoding: [0x0b,0x90,0x8a,0xe6] 77bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover 78bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ Uses printSORegImmOperand(), used by ADCrsi ADDrsi ANDrsi BICrsi EORrsi 79bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ ORRrsi RSBrsi RSCrsi SBCrsi SUBrsi CMNzrsi CMPrsi MOVsi MVNsi TEQrsi TSTrsi 80bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover 81bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc sp, lr, pc 82bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r1, r8, r9, lsr #32 83bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r2, r7, pc, lsr #16 84bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r3, r6, r10, lsl #0 85bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r4, r5, lr, lsl #16 86bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r5, r4, r11, asr #32 87bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r6, r3, sp, asr #16 88bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r7, r2, r12, rrx 89bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover adc r8, r1, r0, ror #16 90bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover 91bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc sp, lr, pc @ encoding: [0x0f,0xd0,0xae,0xe0] 92bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r1, r8, r9, lsr #32 @ encoding: [0x29,0x10,0xa8,0xe0] 93bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r2, r7, pc, lsr #16 @ encoding: [0x2f,0x28,0xa7,0xe0] 94bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r3, r6, r10 @ encoding: [0x0a,0x30,0xa6,0xe0] 95bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r4, r5, lr, lsl #16 @ encoding: [0x0e,0x48,0xa5,0xe0] 96bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r5, r4, r11, asr #32 @ encoding: [0x4b,0x50,0xa4,0xe0] 97bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r6, r3, sp, asr #16 @ encoding: [0x4d,0x68,0xa3,0xe0] 98bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r7, r2, r12, rrx @ encoding: [0x6c,0x70,0xa2,0xe0] 99bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: adc r8, r1, r0, ror #16 @ encoding: [0x60,0x88,0xa1,0xe0] 100bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover 101bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp sp, lr 102bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r1, r8, lsr #32 103bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r2, r7, lsr #16 104bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r3, r6, lsl #0 105bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r4, r5, lsl #16 106bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r5, r4, asr #32 107bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r6, r3, asr #16 108bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r7, r2, rrx 109bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover cmp r8, r1, ror #16 110bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover 111bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp sp, lr @ encoding: [0x0e,0x00,0x5d,0xe1] 112bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r1, r8, lsr #32 @ encoding: [0x28,0x00,0x51,0xe1] 113bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r2, r7, lsr #16 @ encoding: [0x27,0x08,0x52,0xe1] 114bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r3, r6 @ encoding: [0x06,0x00,0x53,0xe1] 115bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r4, r5, lsl #16 @ encoding: [0x05,0x08,0x54,0xe1] 116bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r5, r4, asr #32 @ encoding: [0x44,0x00,0x55,0xe1] 117bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r6, r3, asr #16 @ encoding: [0x43,0x08,0x56,0xe1] 118bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r7, r2, rrx @ encoding: [0x62,0x00,0x57,0xe1] 119bb5174246b5d0dfbd057b3641f5e134fe74ea0f4Tim Northover@ CHECK: cmp r8, r1, ror #16 @ encoding: [0x61,0x08,0x58,0xe1] 120