1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7 -show-encoding < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0] 4*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, lsr #32] 5*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, lsr #16] 6*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, lsl #0] 7*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, lsl #16] 8*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, asr #32] 9*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, asr #16] 10*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, rrx] 11*9880d681SAndroid Build Coastguard Worker ldr r0, [r0, r0, ror #16] 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7] 14*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, lsr #32] @ encoding: [0x20,0x00,0x90,0xe7] 15*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, lsr #16] @ encoding: [0x20,0x08,0x90,0xe7] 16*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0] @ encoding: [0x00,0x00,0x90,0xe7] 17*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, lsl #16] @ encoding: [0x00,0x08,0x90,0xe7] 18*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, asr #32] @ encoding: [0x40,0x00,0x90,0xe7] 19*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, asr #16] @ encoding: [0x40,0x08,0x90,0xe7] 20*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x90,0xe7] 21*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r0, r0, ror #16] @ encoding: [0x60,0x08,0x90,0xe7] 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker pld [r0, r0] 24*9880d681SAndroid Build Coastguard Worker pld [r0, r0, lsr #32] 25*9880d681SAndroid Build Coastguard Worker pld [r0, r0, lsr #16] 26*9880d681SAndroid Build Coastguard Worker pld [r0, r0, lsl #0] 27*9880d681SAndroid Build Coastguard Worker pld [r0, r0, lsl #16] 28*9880d681SAndroid Build Coastguard Worker pld [r0, r0, asr #32] 29*9880d681SAndroid Build Coastguard Worker pld [r0, r0, asr #16] 30*9880d681SAndroid Build Coastguard Worker pld [r0, r0, rrx] 31*9880d681SAndroid Build Coastguard Worker pld [r0, r0, ror #16] 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7] 34*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, lsr #32] @ encoding: [0x20,0xf0,0xd0,0xf7] 35*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, lsr #16] @ encoding: [0x20,0xf8,0xd0,0xf7] 36*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0] @ encoding: [0x00,0xf0,0xd0,0xf7] 37*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, lsl #16] @ encoding: [0x00,0xf8,0xd0,0xf7] 38*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, asr #32] @ encoding: [0x40,0xf0,0xd0,0xf7] 39*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, asr #16] @ encoding: [0x40,0xf8,0xd0,0xf7] 40*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, rrx] @ encoding: [0x60,0xf0,0xd0,0xf7] 41*9880d681SAndroid Build Coastguard Worker@ CHECK: [r0, r0, ror #16] @ encoding: [0x60,0xf8,0xd0,0xf7] 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0] 44*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, lsr #32] 45*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, lsr #16] 46*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, lsl #0] 47*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, lsl #16] 48*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, asr #32] 49*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, asr #16] 50*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, rrx] 51*9880d681SAndroid Build Coastguard Worker str r0, [r0, r0, ror #16] 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7] 54*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, lsr #32] @ encoding: [0x20,0x00,0x80,0xe7] 55*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, lsr #16] @ encoding: [0x20,0x08,0x80,0xe7] 56*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0] @ encoding: [0x00,0x00,0x80,0xe7] 57*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, lsl #16] @ encoding: [0x00,0x08,0x80,0xe7] 58*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, asr #32] @ encoding: [0x40,0x00,0x80,0xe7] 59*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, asr #16] @ encoding: [0x40,0x08,0x80,0xe7] 60*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, rrx] @ encoding: [0x60,0x00,0x80,0xe7] 61*9880d681SAndroid Build Coastguard Worker@ CHECK: str r0, [r0, r0, ror #16] @ encoding: [0x60,0x08,0x80,0xe7] 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker@ Uses printAddrMode2OffsetOperand(), used by LDRBT_POST_IMM LDRBT_POST_REG 64*9880d681SAndroid Build Coastguard Worker@ LDRB_POST_IMM LDRB_POST_REG LDRT_POST_IMM LDRT_POST_REG LDR_POST_IMM 65*9880d681SAndroid Build Coastguard Worker@ LDR_POST_REG STRBT_POST_IMM STRBT_POST_REG STRB_POST_IMM STRB_POST_REG 66*9880d681SAndroid Build Coastguard Worker@ STRT_POST_IMM STRT_POST_REG STR_POST_IMM STR_POST_REG 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker ldr r0, [r1], r2, rrx 69*9880d681SAndroid Build Coastguard Worker ldr r3, [r4], r5, ror #0 70*9880d681SAndroid Build Coastguard Worker str r6, [r7], r8, lsl #0 71*9880d681SAndroid Build Coastguard Worker str r9, [r10], r11 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r0, [r1], r2, rrx @ encoding: [0x62,0x00,0x91,0xe6] 74*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r3, [r4], r5 @ encoding: [0x05,0x30,0x94,0xe6] 75*9880d681SAndroid Build Coastguard Worker@ CHECK: str r6, [r7], r8 @ encoding: [0x08,0x60,0x87,0xe6] 76*9880d681SAndroid Build Coastguard Worker@ CHECK: str r9, [r10], r11 @ encoding: [0x0b,0x90,0x8a,0xe6] 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker@ Uses printSORegImmOperand(), used by ADCrsi ADDrsi ANDrsi BICrsi EORrsi 79*9880d681SAndroid Build Coastguard Worker@ ORRrsi RSBrsi RSCrsi SBCrsi SUBrsi CMNzrsi CMPrsi MOVsi MVNsi TEQrsi TSTrsi 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker adc sp, lr, pc 82*9880d681SAndroid Build Coastguard Worker adc r1, r8, r9, lsr #32 83*9880d681SAndroid Build Coastguard Worker adc r2, r7, pc, lsr #16 84*9880d681SAndroid Build Coastguard Worker adc r3, r6, r10, lsl #0 85*9880d681SAndroid Build Coastguard Worker adc r4, r5, lr, lsl #16 86*9880d681SAndroid Build Coastguard Worker adc r5, r4, r11, asr #32 87*9880d681SAndroid Build Coastguard Worker adc r6, r3, sp, asr #16 88*9880d681SAndroid Build Coastguard Worker adc r7, r2, r12, rrx 89*9880d681SAndroid Build Coastguard Worker adc r8, r1, r0, ror #16 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Worker@ CHECK: adc sp, lr, pc @ encoding: [0x0f,0xd0,0xae,0xe0] 92*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r1, r8, r9, lsr #32 @ encoding: [0x29,0x10,0xa8,0xe0] 93*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r2, r7, pc, lsr #16 @ encoding: [0x2f,0x28,0xa7,0xe0] 94*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r3, r6, r10 @ encoding: [0x0a,0x30,0xa6,0xe0] 95*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r4, r5, lr, lsl #16 @ encoding: [0x0e,0x48,0xa5,0xe0] 96*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r5, r4, r11, asr #32 @ encoding: [0x4b,0x50,0xa4,0xe0] 97*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r6, r3, sp, asr #16 @ encoding: [0x4d,0x68,0xa3,0xe0] 98*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r7, r2, r12, rrx @ encoding: [0x6c,0x70,0xa2,0xe0] 99*9880d681SAndroid Build Coastguard Worker@ CHECK: adc r8, r1, r0, ror #16 @ encoding: [0x60,0x88,0xa1,0xe0] 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker cmp sp, lr 102*9880d681SAndroid Build Coastguard Worker cmp r1, r8, lsr #32 103*9880d681SAndroid Build Coastguard Worker cmp r2, r7, lsr #16 104*9880d681SAndroid Build Coastguard Worker cmp r3, r6, lsl #0 105*9880d681SAndroid Build Coastguard Worker cmp r4, r5, lsl #16 106*9880d681SAndroid Build Coastguard Worker cmp r5, r4, asr #32 107*9880d681SAndroid Build Coastguard Worker cmp r6, r3, asr #16 108*9880d681SAndroid Build Coastguard Worker cmp r7, r2, rrx 109*9880d681SAndroid Build Coastguard Worker cmp r8, r1, ror #16 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp sp, lr @ encoding: [0x0e,0x00,0x5d,0xe1] 112*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r1, r8, lsr #32 @ encoding: [0x28,0x00,0x51,0xe1] 113*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r2, r7, lsr #16 @ encoding: [0x27,0x08,0x52,0xe1] 114*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r3, r6 @ encoding: [0x06,0x00,0x53,0xe1] 115*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r4, r5, lsl #16 @ encoding: [0x05,0x08,0x54,0xe1] 116*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r5, r4, asr #32 @ encoding: [0x44,0x00,0x55,0xe1] 117*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r6, r3, asr #16 @ encoding: [0x43,0x08,0x56,0xe1] 118*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r7, r2, rrx @ encoding: [0x62,0x00,0x57,0xe1] 119*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp r8, r1, ror #16 @ encoding: [0x61,0x08,0x58,0xe1] 120