1f4a2713aSLionel Sambuc@ RUN: not llvm-mc -triple=armv7-apple-darwin < %s 2> %t 2f4a2713aSLionel Sambuc@ RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s 3f4a2713aSLionel Sambuc@ RUN: not llvm-mc -triple=armv8 < %s 2> %t 4f4a2713aSLionel Sambuc@ RUN: FileCheck --check-prefix=CHECK-ERRORS-V8 < %t %s 5f4a2713aSLionel Sambuc 6f4a2713aSLionel Sambuc@ Check for various assembly diagnostic messages on invalid input. 7f4a2713aSLionel Sambuc 8f4a2713aSLionel Sambuc@ 's' bit on an instruction that can't accept it. 9f4a2713aSLionel Sambuc mlss r1, r2, r3, r4 10f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'mls' can not set flags, 11f4a2713aSLionel Sambuc@ CHECK-ERRORS: but 's' suffix specified 12f4a2713aSLionel Sambuc 13f4a2713aSLionel Sambuc 14f4a2713aSLionel Sambuc @ Out of range shift immediate values. 15f4a2713aSLionel Sambuc adc r1, r2, r3, lsl #invalid 16f4a2713aSLionel Sambuc adc r4, r5, r6, lsl #-1 17f4a2713aSLionel Sambuc adc r4, r5, r6, lsl #32 18f4a2713aSLionel Sambuc adc r4, r5, r6, lsr #-1 19f4a2713aSLionel Sambuc adc r4, r5, r6, lsr #33 20f4a2713aSLionel Sambuc adc r4, r5, r6, asr #-1 21f4a2713aSLionel Sambuc adc r4, r5, r6, asr #33 22f4a2713aSLionel Sambuc adc r4, r5, r6, ror #-1 23f4a2713aSLionel Sambuc adc r4, r5, r6, ror #32 24f4a2713aSLionel Sambuc 25f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid immediate shift value 26f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r1, r2, r3, lsl #invalid 27f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 28f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 29f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, lsl #-1 30f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 31f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 32f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, lsl #32 33f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 34f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 35f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, lsr #-1 36f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 37f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 38f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, lsr #33 39f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 40f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 41f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, asr #-1 42f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 43f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 44f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, asr #33 45f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 46f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 47f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, ror #-1 48f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 49f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 50f4a2713aSLionel Sambuc@ CHECK-ERRORS: adc r4, r5, r6, ror #32 51f4a2713aSLionel Sambuc 52f4a2713aSLionel Sambuc @ Out of range shift immediate values for load/store. 53f4a2713aSLionel Sambuc str r1, [r2, r3, lsl #invalid] 54f4a2713aSLionel Sambuc ldr r4, [r5], r6, lsl #-1 55f4a2713aSLionel Sambuc pld r4, [r5, r6, lsl #32] 56f4a2713aSLionel Sambuc str r4, [r5], r6, lsr #-1 57f4a2713aSLionel Sambuc ldr r4, [r5, r6, lsr #33] 58f4a2713aSLionel Sambuc pld r4, [r5, r6, asr #-1] 59f4a2713aSLionel Sambuc str r4, [r5, r6, asr #33] 60f4a2713aSLionel Sambuc ldr r4, [r5, r6, ror #-1] 61f4a2713aSLionel Sambuc pld r4, [r5, r6, ror #32] 62f4a2713aSLionel Sambuc pld r4, [r5, r6, rrx #0] 63f4a2713aSLionel Sambuc 64f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: shift amount must be an immediate 65f4a2713aSLionel Sambuc@ CHECK-ERRORS: str r1, [r2, r3, lsl #invalid] 66f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 67f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 68f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldr r4, [r5], r6, lsl #-1 69f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 70f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 71f4a2713aSLionel Sambuc@ CHECK-ERRORS: pld r4, [r5, r6, lsl #32] 72f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 73f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 74f4a2713aSLionel Sambuc@ CHECK-ERRORS: str r4, [r5], r6, lsr #-1 75f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 76f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 77f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldr r4, [r5, r6, lsr #33] 78f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 79f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 80f4a2713aSLionel Sambuc@ CHECK-ERRORS: pld r4, [r5, r6, asr #-1] 81f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 82f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 83f4a2713aSLionel Sambuc@ CHECK-ERRORS: str r4, [r5, r6, asr #33] 84f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 85f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 86f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldr r4, [r5, r6, ror #-1] 87f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 88f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate shift value out of range 89f4a2713aSLionel Sambuc@ CHECK-ERRORS: pld r4, [r5, r6, ror #32] 90f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: ']' expected 91f4a2713aSLionel Sambuc@ CHECK-ERRORS: pld r4, [r5, r6, rrx #0] 92f4a2713aSLionel Sambuc 93f4a2713aSLionel Sambuc @ Out of range 16-bit immediate on BKPT 94f4a2713aSLionel Sambuc bkpt #65536 95f4a2713aSLionel Sambuc 96f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 97f4a2713aSLionel Sambuc 98f4a2713aSLionel Sambuc @ Out of range immediates for v8 HLT instruction. 99f4a2713aSLionel Sambuc hlt #65536 100f4a2713aSLionel Sambuc hlt #-1 101f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: error: invalid operand for instruction 102f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: hlt #65536 103f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: ^ 104f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: error: invalid operand for instruction 105f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: hlt #-1 106f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: ^ 107f4a2713aSLionel Sambuc 108f4a2713aSLionel Sambuc @ Illegal condition code for v8 HLT instruction. 109f4a2713aSLionel Sambuc hlteq #2 110f4a2713aSLionel Sambuc hltlt #23 111f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: error: instruction 'hlt' is not predicable, but condition code specified 112f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: hlteq #2 113f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: ^ 114f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: error: instruction 'hlt' is not predicable, but condition code specified 115f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: hltlt #23 116f4a2713aSLionel Sambuc@CHECK-ERRORS-V8: ^ 117f4a2713aSLionel Sambuc 118f4a2713aSLionel Sambuc @ Out of range 4 and 3 bit immediates on CDP[2] 119f4a2713aSLionel Sambuc 120f4a2713aSLionel Sambuc @ Out of range immediates for CDP/CDP2 121f4a2713aSLionel Sambuc cdp p7, #2, c1, c1, c1, #8 122f4a2713aSLionel Sambuc cdp p7, #1, c1, c1, c1, #8 123f4a2713aSLionel Sambuc cdp2 p7, #2, c1, c1, c1, #8 124f4a2713aSLionel Sambuc cdp2 p7, #1, c1, c1, c1, #8 125f4a2713aSLionel Sambuc 126f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 127f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 128f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 129f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 130f4a2713aSLionel Sambuc 131f4a2713aSLionel Sambuc @ Out of range immediates for DBG 132f4a2713aSLionel Sambuc dbg #-1 133f4a2713aSLionel Sambuc dbg #16 134f4a2713aSLionel Sambuc 135f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 136f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 137f4a2713aSLionel Sambuc@ Double-check that we're synced up with the right diagnostics. 138f4a2713aSLionel Sambuc@ CHECK-ERRORS: dbg #16 139f4a2713aSLionel Sambuc 140f4a2713aSLionel Sambuc @ Out of range immediate for MCR/MCR2/MCRR/MCRR2 141f4a2713aSLionel Sambuc mcr p7, #8, r5, c1, c1, #4 142f4a2713aSLionel Sambuc mcr p7, #2, r5, c1, c1, #8 143f4a2713aSLionel Sambuc mcr2 p7, #8, r5, c1, c1, #4 144f4a2713aSLionel Sambuc mcr2 p7, #1, r5, c1, c1, #8 145f4a2713aSLionel Sambuc mcrr p7, #16, r5, r4, c1 146f4a2713aSLionel Sambuc mcrr2 p7, #16, r5, r4, c1 147f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 148f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 149f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 150f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 151f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 152f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 153f4a2713aSLionel Sambuc 154f4a2713aSLionel Sambuc @ p10 and p11 are reserved for NEON 155f4a2713aSLionel Sambuc mcr p10, #2, r5, c1, c1, #4 156f4a2713aSLionel Sambuc mcrr p11, #8, r5, r4, c1 157f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 158f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 159f4a2713aSLionel Sambuc 160f4a2713aSLionel Sambuc @ Out of range immediate for MOV 161f4a2713aSLionel Sambuc movw r9, 0x10000 162f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 163f4a2713aSLionel Sambuc 164f4a2713aSLionel Sambuc @ Invalid 's' bit usage for MOVW 165f4a2713aSLionel Sambuc movs r6, #0xffff 166f4a2713aSLionel Sambuc movwseq r9, #0xffff 167f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 168f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'movw' can not set flags, but 's' suffix specified 169f4a2713aSLionel Sambuc 170f4a2713aSLionel Sambuc @ Out of range immediate for MOVT 171f4a2713aSLionel Sambuc movt r9, 0x10000 172f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 173f4a2713aSLionel Sambuc 174f4a2713aSLionel Sambuc @ Out of range immediates for MRC/MRC2/MRRC/MRRC2 175f4a2713aSLionel Sambuc mrc p14, #8, r1, c1, c2, #4 176f4a2713aSLionel Sambuc mrc p14, #1, r1, c1, c2, #8 177f4a2713aSLionel Sambuc mrc2 p14, #8, r1, c1, c2, #4 178f4a2713aSLionel Sambuc mrc2 p14, #0, r1, c1, c2, #9 179f4a2713aSLionel Sambuc mrrc p7, #16, r5, r4, c1 180f4a2713aSLionel Sambuc mrrc2 p7, #17, r5, r4, c1 181f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 182f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 183f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 184f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 185f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 186f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must be in the range [0,15] 187f4a2713aSLionel Sambuc 188f4a2713aSLionel Sambuc @ Shifter operand validation for PKH instructions. 189f4a2713aSLionel Sambuc pkhbt r2, r2, r3, lsl #-1 190f4a2713aSLionel Sambuc pkhbt r2, r2, r3, lsl #32 191f4a2713aSLionel Sambuc pkhtb r2, r2, r3, asr #0 192f4a2713aSLionel Sambuc pkhtb r2, r2, r3, asr #33 193f4a2713aSLionel Sambuc pkhbt r2, r2, r3, asr #3 194f4a2713aSLionel Sambuc pkhtb r2, r2, r3, lsl #3 195f4a2713aSLionel Sambuc 196f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 197f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhbt r2, r2, r3, lsl #-1 198f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 199f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 200f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhbt r2, r2, r3, lsl #32 201f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 202f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 203f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhtb r2, r2, r3, asr #0 204f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 205f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 206f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhtb r2, r2, r3, asr #33 207f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 208f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: lsl operand expected. 209f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhbt r2, r2, r3, asr #3 210f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 211f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: asr operand expected. 212f4a2713aSLionel Sambuc@ CHECK-ERRORS: pkhtb r2, r2, r3, lsl #3 213f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 214f4a2713aSLionel Sambuc 215f4a2713aSLionel Sambuc 216f4a2713aSLionel Sambuc @ bad values for SETEND 217f4a2713aSLionel Sambuc setendne be 218f4a2713aSLionel Sambuc setend me 219f4a2713aSLionel Sambuc setend 1 220f4a2713aSLionel Sambuc 221f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'setend' is not predicable, but condition code specified 222f4a2713aSLionel Sambuc@ CHECK-ERRORS: setendne be 223f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 224f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'be' or 'le' operand expected 225f4a2713aSLionel Sambuc@ CHECK-ERRORS: setend me 226f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 227f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'be' or 'le' operand expected 228f4a2713aSLionel Sambuc@ CHECK-ERRORS: setend 1 229f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 230f4a2713aSLionel Sambuc 231f4a2713aSLionel Sambuc 232f4a2713aSLionel Sambuc @ Out of range immediates and bad shift types for SSAT 233f4a2713aSLionel Sambuc ssat r8, #0, r10, lsl #8 234f4a2713aSLionel Sambuc ssat r8, #33, r10, lsl #8 235f4a2713aSLionel Sambuc ssat r8, #1, r10, lsl #-1 236f4a2713aSLionel Sambuc ssat r8, #1, r10, lsl #32 237f4a2713aSLionel Sambuc ssat r8, #1, r10, asr #0 238f4a2713aSLionel Sambuc ssat r8, #1, r10, asr #33 239f4a2713aSLionel Sambuc ssat r8, #1, r10, lsr #5 240f4a2713aSLionel Sambuc ssat r8, #1, r10, lsl fred 241f4a2713aSLionel Sambuc ssat r8, #1, r10, lsl #fred 242f4a2713aSLionel Sambuc 243f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 244f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #0, r10, lsl #8 245f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 246f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 247f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #33, r10, lsl #8 248f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 249f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31] 250f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, lsl #-1 251f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 252f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31] 253f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, lsl #32 254f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 255f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32] 256f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, asr #0 257f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 258f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32] 259f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, asr #33 260f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 261f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: shift operator 'asr' or 'lsl' expected 262f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, lsr #5 263f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 264f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: '#' expected 265f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, lsl fred 266f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 267f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: shift amount must be an immediate 268f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat r8, #1, r10, lsl #fred 269f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 270f4a2713aSLionel Sambuc 271f4a2713aSLionel Sambuc @ Out of range immediates for SSAT16 272f4a2713aSLionel Sambuc ssat16 r2, #0, r7 273f4a2713aSLionel Sambuc ssat16 r3, #17, r5 274f4a2713aSLionel Sambuc 275f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 276f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat16 r2, #0, r7 277f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 278f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 279f4a2713aSLionel Sambuc@ CHECK-ERRORS: ssat16 r3, #17, r5 280f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 281f4a2713aSLionel Sambuc 282f4a2713aSLionel Sambuc 283f4a2713aSLionel Sambuc @ Out of order STM registers 284f4a2713aSLionel Sambuc stmda sp!, {r5, r2} 285f4a2713aSLionel Sambuc 286f4a2713aSLionel Sambuc@ CHECK-ERRORS: warning: register list not in ascending order 287f4a2713aSLionel Sambuc@ CHECK-ERRORS: stmda sp!, {r5, r2} 288f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 289f4a2713aSLionel Sambuc 290f4a2713aSLionel Sambuc 291f4a2713aSLionel Sambuc @ Out of range immediate on SVC 292f4a2713aSLionel Sambuc svc #0x1000000 293f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 294f4a2713aSLionel Sambuc@ CHECK-ERRORS: svc #0x1000000 295f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 296f4a2713aSLionel Sambuc 297f4a2713aSLionel Sambuc 298f4a2713aSLionel Sambuc @ Out of order Rt/Rt2 operands for ldrexd/strexd 299f4a2713aSLionel Sambuc ldrexd r4, r3, [r8] 300f4a2713aSLionel Sambuc strexd r6, r5, r3, [r8] 301f4a2713aSLionel Sambuc 302f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: destination operands must be sequential 303f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldrexd r4, r3, [r8] 304f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 305f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: source operands must be sequential 306f4a2713aSLionel Sambuc@ CHECK-ERRORS: strexd r6, r5, r3, [r8] 307f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 308f4a2713aSLionel Sambuc 309f4a2713aSLionel Sambuc @ Illegal rotate operators for extend instructions 310f4a2713aSLionel Sambuc sxtb r8, r3, #8 311f4a2713aSLionel Sambuc sxtb r8, r3, ror 24 312f4a2713aSLionel Sambuc sxtb r8, r3, ror #8 - 313f4a2713aSLionel Sambuc sxtab r3, r8, r3, ror #(fred - wilma) 314f4a2713aSLionel Sambuc sxtab r7, r8, r3, ror #25 315f4a2713aSLionel Sambuc sxtah r9, r3, r3, ror #-8 316f4a2713aSLionel Sambuc sxtb16ge r2, r3, lsr #24 317f4a2713aSLionel Sambuc 318f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 319f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtb r8, r3, #8 320f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 321f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: '#' expected 322f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtb r8, r3, ror 24 323f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 324f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: unknown token in expression 325f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtb r8, r3, ror #8 - 326f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 327f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: malformed rotate expression 328f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtb r8, r3, ror #8 - 329f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 330f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: rotate amount must be an immediate 331f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtab r3, r8, r3, ror #(fred - wilma) 332f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 333f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'ror' rotate amount must be 8, 16, or 24 334f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtab r7, r8, r3, ror #25 335f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 336f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: 'ror' rotate amount must be 8, 16, or 24 337f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtah r9, r3, r3, ror #-8 338f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 339f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 340f4a2713aSLionel Sambuc@ CHECK-ERRORS: sxtb16ge r2, r3, lsr #24 341f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 342f4a2713aSLionel Sambuc 343f4a2713aSLionel Sambuc @ Out of range width for SBFX/UBFX 344f4a2713aSLionel Sambuc sbfx r4, r5, #31, #2 345f4a2713aSLionel Sambuc ubfxgt r4, r5, #16, #17 346f4a2713aSLionel Sambuc 347f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: bitfield width must be in range [1,32-lsb] 348f4a2713aSLionel Sambuc@ CHECK-ERRORS: sbfx r4, r5, #31, #2 349f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 350f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: bitfield width must be in range [1,32-lsb] 351f4a2713aSLionel Sambuc@ CHECK-ERRORS: ubfxgt r4, r5, #16, #17 352f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 353f4a2713aSLionel Sambuc 354*0a6a1f1dSLionel Sambuc @ Using pc for SBFX/UBFX 355*0a6a1f1dSLionel Sambuc sbfx pc, r2, #1, #3 356*0a6a1f1dSLionel Sambuc sbfx sp, pc, #4, #5 357*0a6a1f1dSLionel Sambuc ubfx pc, r0, #0, #31 358*0a6a1f1dSLionel Sambuc ubfx r14, pc, #1, #2 359*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 360*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: sbfx pc, r2, #1, #3 361*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 362*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 363*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: sbfx sp, pc, #4, #5 364*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 365*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 366*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ubfx pc, r0, #0, #31 367*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 368*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 369*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ubfx r14, pc, #1, #2 370*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 371*0a6a1f1dSLionel Sambuc 372f4a2713aSLionel Sambuc @ Out of order Rt/Rt2 operands for ldrd 373f4a2713aSLionel Sambuc ldrd r4, r3, [r8] 374f4a2713aSLionel Sambuc ldrd r4, r3, [r8, #8]! 375f4a2713aSLionel Sambuc ldrd r4, r3, [r8], #8 376f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: destination operands must be sequential 377f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldrd r4, r3, [r8] 378f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 379f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: destination operands must be sequential 380f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldrd r4, r3, [r8, #8]! 381f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 382f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: destination operands must be sequential 383f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldrd r4, r3, [r8], #8 384f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 385f4a2713aSLionel Sambuc 386f4a2713aSLionel Sambuc 387f4a2713aSLionel Sambuc @ Bad register lists for VFP. 388f4a2713aSLionel Sambuc vpush {s0, s3} 389f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: non-contiguous register range 390f4a2713aSLionel Sambuc@ CHECK-ERRORS: vpush {s0, s3} 391f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 392f4a2713aSLionel Sambuc 393f4a2713aSLionel Sambuc @ Out of range coprocessor option immediate. 394f4a2713aSLionel Sambuc ldc2 p2, c8, [r1], { 256 } 395f4a2713aSLionel Sambuc ldc2 p2, c8, [r1], { -1 } 396f4a2713aSLionel Sambuc 397f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: coprocessor option must be an immediate in range [0, 255] 398f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldc2 p2, c8, [r1], { 256 } 399f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 400f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: coprocessor option must be an immediate in range [0, 255] 401f4a2713aSLionel Sambuc@ CHECK-ERRORS: ldc2 p2, c8, [r1], { -1 } 402f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 403f4a2713aSLionel Sambuc 404f4a2713aSLionel Sambuc @ Bad CPS instruction format. 405f4a2713aSLionel Sambuc cps f,#1 406f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 407f4a2713aSLionel Sambuc@ CHECK-ERRORS: cps f,#1 408f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 409f4a2713aSLionel Sambuc 410f4a2713aSLionel Sambuc @ Bad operands for msr 411f4a2713aSLionel Sambuc msr #0, #0 412f4a2713aSLionel Sambuc msr foo, #0 413f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 414f4a2713aSLionel Sambuc@ CHECK-ERRORS: msr #0, #0 415f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 416f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: invalid operand for instruction 417f4a2713aSLionel Sambuc@ CHECK-ERRORS: msr foo, #0 418f4a2713aSLionel Sambuc@ CHECK-ERRORS: ^ 419f4a2713aSLionel Sambuc 420f4a2713aSLionel Sambuc isb #-1 421f4a2713aSLionel Sambuc isb #16 422f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 423f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: immediate value out of range 424f4a2713aSLionel Sambuc 425f4a2713aSLionel Sambuc nop.n 426f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction with .n (narrow) qualifier not allowed in arm mode 427f4a2713aSLionel Sambuc 428f4a2713aSLionel Sambuc dmbeq #5 429f4a2713aSLionel Sambuc dsble #15 430f4a2713aSLionel Sambuc isblo #7 431f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'dmb' is not predicable, but condition code specified 432f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'dsb' is not predicable, but condition code specified 433f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'isb' is not predicable, but condition code specified 434f4a2713aSLionel Sambuc 435f4a2713aSLionel Sambuc dmblt 436f4a2713aSLionel Sambuc dsbne 437f4a2713aSLionel Sambuc isbeq 438f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'dmb' is not predicable, but condition code specified 439f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'dsb' is not predicable, but condition code specified 440f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'isb' is not predicable, but condition code specified 441f4a2713aSLionel Sambuc 442f4a2713aSLionel Sambuc mcr2le p7, #1, r5, c1, c1, #4 443f4a2713aSLionel Sambuc mcrr2ne p7, #15, r5, r4, c1 444f4a2713aSLionel Sambuc mrc2lo p14, #0, r1, c1, c2, #4 445f4a2713aSLionel Sambuc mrrc2lo p7, #1, r5, r4, c1 446f4a2713aSLionel Sambuc cdp2hi p10, #0, c6, c12, c0, #7 447f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'mcr2' is not predicable, but condition code specified 448f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'mcrr2' is not predicable, but condition code specified 449f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'mrc2' is not predicable, but condition code specified 450f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'mrrc2' is not predicable, but condition code specified 451f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'cdp2' is not predicable, but condition code specified 452f4a2713aSLionel Sambuc 453f4a2713aSLionel Sambuc bkpteq #7 454f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction 'bkpt' is not predicable, but condition code specified 455f4a2713aSLionel Sambuc 456f4a2713aSLionel Sambuc ldm r2!, {r2, r3} 457f4a2713aSLionel Sambuc ldmdb r2!, {r2, r3} 458f4a2713aSLionel Sambuc ldmda r2!, {r2, r3} 459f4a2713aSLionel Sambuc popeq {sp} 460f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: writeback register not allowed in register list 461f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: writeback register not allowed in register list 462f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: writeback register not allowed in register list 463f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: writeback register not allowed in register list 464f4a2713aSLionel Sambuc 465f4a2713aSLionel Sambuc vrintz.f32.f32 s0, s1 466f4a2713aSLionel Sambuc vrintr.f32 s0, s1 467f4a2713aSLionel Sambuc vrintx.f64.f64 d2, d5 468f4a2713aSLionel Sambuc vrintz.f64 d10, d9 469f4a2713aSLionel Sambuc vrinta.f32.f32 s6, s7 470f4a2713aSLionel Sambuc vrintn.f32 s8, s9 471f4a2713aSLionel Sambuc vrintp.f64.f64 d10, d11 472f4a2713aSLionel Sambuc vrintm.f64 d12, d13 473f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 474f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 475f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 476f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 477f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 478f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 479f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 480f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: instruction requires: FPARMv8 481f4a2713aSLionel Sambuc 482f4a2713aSLionel Sambuc stm sp!, {r0, pc}^ 483f4a2713aSLionel Sambuc ldm sp!, {r0}^ 484f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: system STM cannot have writeback register 485f4a2713aSLionel Sambuc@ CHECK-ERRORS: error: writeback register only allowed on system LDM if PC in register-list 486*0a6a1f1dSLionel Sambuc 487*0a6a1f1dSLionel Sambucfoo2: 488*0a6a1f1dSLionel Sambuc mov r0, foo2 489*0a6a1f1dSLionel Sambuc movw r0, foo2 490*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 491*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 492*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16 493*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 494*0a6a1f1dSLionel Sambuc 495*0a6a1f1dSLionel Sambuc str r0, [r0, #4]! 496*0a6a1f1dSLionel Sambuc str r0, [r0, r1]! 497*0a6a1f1dSLionel Sambuc str r0, [r0], #4 498*0a6a1f1dSLionel Sambuc str r0, [r0], r1 499*0a6a1f1dSLionel Sambuc strh r0, [r0, #2]! 500*0a6a1f1dSLionel Sambuc strh r0, [r0, r1]! 501*0a6a1f1dSLionel Sambuc strh r0, [r0], #2 502*0a6a1f1dSLionel Sambuc strh r0, [r0], r1 503*0a6a1f1dSLionel Sambuc strb r0, [r0, #1]! 504*0a6a1f1dSLionel Sambuc strb r0, [r0, r1]! 505*0a6a1f1dSLionel Sambuc strb r0, [r0], #1 506*0a6a1f1dSLionel Sambuc strb r0, [r0], r1 507*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 508*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: str r0, [r0, #4]! 509*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 510*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 511*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: str r0, [r0, r1]! 512*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 513*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 514*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: str r0, [r0], #4 515*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 516*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 517*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: str r0, [r0], r1 518*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 519*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 520*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strh r0, [r0, #2]! 521*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 522*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 523*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strh r0, [r0, r1]! 524*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 525*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 526*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strh r0, [r0], #2 527*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 528*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 529*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strh r0, [r0], r1 530*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 531*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 532*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strb r0, [r0, #1]! 533*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 534*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 535*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strb r0, [r0, r1]! 536*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 537*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 538*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strb r0, [r0], #1 539*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 540*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: source register and base register can't be identical 541*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: strb r0, [r0], r1 542*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 543*0a6a1f1dSLionel Sambuc 544*0a6a1f1dSLionel Sambuc ldr r0, [r0, #4]! 545*0a6a1f1dSLionel Sambuc ldr r0, [r0, r1]! 546*0a6a1f1dSLionel Sambuc ldr r0, [r0], #4 547*0a6a1f1dSLionel Sambuc ldr r0, [r0], r1 548*0a6a1f1dSLionel Sambuc ldrh r0, [r0, #2]! 549*0a6a1f1dSLionel Sambuc ldrh r0, [r0, r1]! 550*0a6a1f1dSLionel Sambuc ldrh r0, [r0], #2 551*0a6a1f1dSLionel Sambuc ldrh r0, [r0], r1 552*0a6a1f1dSLionel Sambuc ldrsh r0, [r0, #2]! 553*0a6a1f1dSLionel Sambuc ldrsh r0, [r0, r1]! 554*0a6a1f1dSLionel Sambuc ldrsh r0, [r0], #2 555*0a6a1f1dSLionel Sambuc ldrsh r0, [r0], r1 556*0a6a1f1dSLionel Sambuc ldrb r0, [r0, #1]! 557*0a6a1f1dSLionel Sambuc ldrb r0, [r0, r1]! 558*0a6a1f1dSLionel Sambuc ldrb r0, [r0], #1 559*0a6a1f1dSLionel Sambuc ldrb r0, [r0], r1 560*0a6a1f1dSLionel Sambuc ldrsb r0, [r0, #1]! 561*0a6a1f1dSLionel Sambuc ldrsb r0, [r0, r1]! 562*0a6a1f1dSLionel Sambuc ldrsb r0, [r0], #1 563*0a6a1f1dSLionel Sambuc ldrsb r0, [r0], r1 564*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 565*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldr r0, [r0, #4]! 566*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 567*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 568*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldr r0, [r0, r1]! 569*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 570*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 571*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldr r0, [r0], #4 572*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 573*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 574*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldr r0, [r0], r1 575*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 576*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 577*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrh r0, [r0, #2]! 578*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 579*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 580*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrh r0, [r0, r1]! 581*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 582*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 583*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrh r0, [r0], #2 584*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 585*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 586*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrh r0, [r0], r1 587*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 588*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 589*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsh r0, [r0, #2]! 590*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 591*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 592*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsh r0, [r0, r1]! 593*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 594*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 595*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsh r0, [r0], #2 596*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 597*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 598*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsh r0, [r0], r1 599*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 600*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 601*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrb r0, [r0, #1]! 602*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 603*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 604*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrb r0, [r0, r1]! 605*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 606*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 607*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrb r0, [r0], #1 608*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 609*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 610*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrb r0, [r0], r1 611*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 612*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 613*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsb r0, [r0, #1]! 614*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 615*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 616*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsb r0, [r0, r1]! 617*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 618*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 619*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsb r0, [r0], #1 620*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 621*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: destination register and base register can't be identical 622*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ldrsb r0, [r0], r1 623*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: ^ 624*0a6a1f1dSLionel Sambuc 625*0a6a1f1dSLionel Sambuc @ Out of range modified immediate values 626*0a6a1f1dSLionel Sambuc mov r5, #-256, #6 627*0a6a1f1dSLionel Sambuc mov r6, #42, #7 628*0a6a1f1dSLionel Sambuc mvn r5, #256, #6 629*0a6a1f1dSLionel Sambuc mvn r6, #42, #298 630*0a6a1f1dSLionel Sambuc cmp r5, #65535, #6 631*0a6a1f1dSLionel Sambuc cmp r6, #42, #31 632*0a6a1f1dSLionel Sambuc cmn r5, #-1, #6 633*0a6a1f1dSLionel Sambuc cmn r6, #42, #32 634*0a6a1f1dSLionel Sambuc msr APSR_nzcvq, #-128, #2 635*0a6a1f1dSLionel Sambuc msr apsr_nzcvqg, #0, #1 636*0a6a1f1dSLionel Sambuc adc r7, r8, #-256, #2 637*0a6a1f1dSLionel Sambuc adc r7, r8, #128, #1 638*0a6a1f1dSLionel Sambuc sbc r7, r8, #-256, #2 639*0a6a1f1dSLionel Sambuc sbc r7, r8, #128, #1 640*0a6a1f1dSLionel Sambuc add r7, r8, #-2149, #0 641*0a6a1f1dSLionel Sambuc add r7, r8, #100, #1 642*0a6a1f1dSLionel Sambuc sub r7, r8, #-2149, #0 643*0a6a1f1dSLionel Sambuc sub r7, r8, #100, #1 644*0a6a1f1dSLionel Sambuc and r7, r8, #-2149, #0 645*0a6a1f1dSLionel Sambuc and r7, r8, #100, #1 646*0a6a1f1dSLionel Sambuc orr r7, r8, #-2149, #0 647*0a6a1f1dSLionel Sambuc orr r7, r8, #100, #1 648*0a6a1f1dSLionel Sambuc eor r7, r8, #-2149, #0 649*0a6a1f1dSLionel Sambuc eor r7, r8, #100, #1 650*0a6a1f1dSLionel Sambuc bic r7, r8, #-2149, #0 651*0a6a1f1dSLionel Sambuc bic r7, r8, #100, #1 652*0a6a1f1dSLionel Sambuc rsb r7, r8, #-2149, #0 653*0a6a1f1dSLionel Sambuc rsb r7, r8, #100, #1 654*0a6a1f1dSLionel Sambuc adds r7, r8, #-2149, #0 655*0a6a1f1dSLionel Sambuc adds r7, r8, #100, #1 656*0a6a1f1dSLionel Sambuc subs r7, r8, #-2149, #0 657*0a6a1f1dSLionel Sambuc subs r7, r8, #100, #1 658*0a6a1f1dSLionel Sambuc rsbs r7, r8, #-2149, #0 659*0a6a1f1dSLionel Sambuc rsbs r7, r8, #100, #1 660*0a6a1f1dSLionel Sambuc rsc r7, r8, #-2149, #0 661*0a6a1f1dSLionel Sambuc rsc r7, r8, #100, #1 662*0a6a1f1dSLionel Sambuc TST r7, #-2149, #0 663*0a6a1f1dSLionel Sambuc TST r7, #100, #1 664*0a6a1f1dSLionel Sambuc TEQ r7, #-2149, #0 665*0a6a1f1dSLionel Sambuc TEQ r7, #100, #1 666*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 667*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 668*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 669*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 670*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 671*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 672*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 673*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 674*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 675*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 676*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 677*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 678*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 679*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 680*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 681*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 682*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 683*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 684*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 685*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 686*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 687*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 688*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 689*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 690*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 691*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 692*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 693*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 694*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 695*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 696*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 697*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 698*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 699*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 700*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 701*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 702*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255] 703*0a6a1f1dSLionel Sambuc@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30] 704