1*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv6-apple-darwin -o /dev/null < %s 2>&1 \ 2*9880d681SAndroid Build Coastguard Worker@ RUN: | FileCheck --check-prefix=CHECK-ERRORS %s 3*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv5-apple-darwin -o /dev/null < %s 2>&1 \ 4*9880d681SAndroid Build Coastguard Worker@ RUN: | FileCheck --check-prefix=CHECK-ERRORS-V5 %s 5*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv7m -o /dev/null < %s 2>&1 \ 6*9880d681SAndroid Build Coastguard Worker@ RUN: | FileCheck --check-prefix=CHECK-ERRORS-V7M %s 7*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv8 -o /dev/null < %s 2>&1 \ 8*9880d681SAndroid Build Coastguard Worker@ RUN: | FileCheck --check-prefix=CHECK-ERRORS-V8 %s 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker@ Check for various assembly diagnostic messages on invalid input. 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker@ ADD instruction w/o 'S' suffix. 13*9880d681SAndroid Build Coastguard Worker add r1, r2, r3 14*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid instruction 15*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add r1, r2, r3 16*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker@ Instructions which require v6+ for both registers to be low regs. 19*9880d681SAndroid Build Coastguard Worker add r2, r3 20*9880d681SAndroid Build Coastguard Worker mov r2, r3 21*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction variant requires Thumb2 22*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add r2, r3 23*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 24*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5: error: instruction variant requires ARMv6 or later 25*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5: mov r2, r3 26*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5: ^ 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for ASR instruction. 30*9880d681SAndroid Build Coastguard Worker asrs r2, r3, #33 31*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 32*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: asrs r2, r3, #33 33*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for BKPT instruction. 36*9880d681SAndroid Build Coastguard Worker bkpt #256 37*9880d681SAndroid Build Coastguard Worker bkpt #-1 38*9880d681SAndroid Build Coastguard Workererror: invalid operand for instruction 39*9880d681SAndroid Build Coastguard Worker bkpt #256 40*9880d681SAndroid Build Coastguard Worker ^ 41*9880d681SAndroid Build Coastguard Workererror: invalid operand for instruction 42*9880d681SAndroid Build Coastguard Worker bkpt #-1 43*9880d681SAndroid Build Coastguard Worker ^ 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for v8 HLT instruction. 46*9880d681SAndroid Build Coastguard Worker hlt #64 47*9880d681SAndroid Build Coastguard Worker hlt #-1 48*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: instruction requires: armv8 arm-mode 49*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: hlt #64 50*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: ^ 51*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8: error: instruction requires: arm-mode 52*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8: hlt #64 53*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8: ^ 54*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: invalid operand for instruction 55*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: hlt #-1 56*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: ^ 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for LDM 59*9880d681SAndroid Build Coastguard Worker ldm r2!, {r5, r8} 60*9880d681SAndroid Build Coastguard Worker ldm r2, {r5, r7} 61*9880d681SAndroid Build Coastguard Worker ldm r2!, {r2, r3, r4} 62*9880d681SAndroid Build Coastguard Worker ldm r2!, {r2, r3, r4, r10} 63*9880d681SAndroid Build Coastguard Worker ldmdb r2!, {r2, r3, r4} 64*9880d681SAndroid Build Coastguard Worker ldm r0, {r2, sp} 65*9880d681SAndroid Build Coastguard Worker ldmia r0, {r2-r3, sp} 66*9880d681SAndroid Build Coastguard Worker ldmia r0!, {r2-r3, sp} 67*9880d681SAndroid Build Coastguard Worker ldmfd r2, {r1, r3-r6, sp} 68*9880d681SAndroid Build Coastguard Worker ldmfd r2!, {r1, r3-r6, sp} 69*9880d681SAndroid Build Coastguard Worker ldmdb r1, {r2, r3, sp} 70*9880d681SAndroid Build Coastguard Worker ldmdb r1!, {r2, r3, sp} 71*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 72*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldm r2!, {r5, r8} 73*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 74*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback operator '!' expected 75*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldm r2, {r5, r7} 76*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 77*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback operator '!' not allowed when base register in register list 78*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldm r2!, {r2, r3, r4} 79*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 80*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback operator '!' not allowed when base register in register list 81*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ldm r2!, {r2, r3, r4, r10} 82*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ^ 83*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback register not allowed in register list 84*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ldmdb r2!, {r2, r3, r4} 85*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ^ 86*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 87*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldm r0, {r2, sp} 88*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 89*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 90*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmia r0, {r2-r3, sp} 91*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 92*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 93*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmia r0!, {r2-r3, sp} 94*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 95*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 96*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmfd r2, {r1, r3-r6, sp} 97*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 98*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 99*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmfd r2!, {r1, r3-r6, sp} 100*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 101*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 102*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmdb r1, {r2, r3, sp} 103*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 104*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 105*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ldmdb r1!, {r2, r3, sp} 106*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for PUSH/POP 109*9880d681SAndroid Build Coastguard Worker pop {r1, r2, r10} 110*9880d681SAndroid Build Coastguard Worker push {r8, r9} 111*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 or pc 112*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: pop {r1, r2, r10} 113*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 114*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 or lr 115*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: push {r8, r9} 116*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for STM 120*9880d681SAndroid Build Coastguard Worker stm r1, {r2, r6} 121*9880d681SAndroid Build Coastguard Worker stm r1!, {r2, r9} 122*9880d681SAndroid Build Coastguard Worker stm r2!, {r2, r9} 123*9880d681SAndroid Build Coastguard Worker stmdb r2!, {r0, r2} 124*9880d681SAndroid Build Coastguard Worker stm r1!, {r2, sp} 125*9880d681SAndroid Build Coastguard Worker stmia r4!, {r0-r3, sp} 126*9880d681SAndroid Build Coastguard Worker stmdb r1, {r2, r3, sp} 127*9880d681SAndroid Build Coastguard Worker stmdb r1!, {r2, r3, sp} 128*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 129*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: stm r1, {r2, r6} 130*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 131*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 132*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: stm r1!, {r2, r9} 133*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 134*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback operator '!' not allowed when base register in register list 135*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: stm r2!, {r2, r9} 136*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ^ 137*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback register not allowed in register list 138*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: stmdb r2!, {r0, r2} 139*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: ^ 140*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 141*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: stm r1!, {r2, sp} 142*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 143*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 144*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: stmia r4!, {r0-r3, sp} 145*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 146*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 147*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: stmdb r1, {r2, r3, sp} 148*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 149*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list 150*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: stmdb r1!, {r2, r3, sp} 151*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: ^ 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for LSL instruction. 154*9880d681SAndroid Build Coastguard Worker lsls r4, r5, #-1 155*9880d681SAndroid Build Coastguard Worker lsls r4, r5, #32 156*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 157*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: lsls r4, r5, #-1 158*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 159*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 160*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: lsls r4, r5, #32 161*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker@ Mismatched source/destination operands for MUL instruction. 164*9880d681SAndroid Build Coastguard Worker muls r1, r2, r3 165*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register must match source register 166*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: muls r1, r2, r3 167*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for STR instruction. 171*9880d681SAndroid Build Coastguard Worker str r2, [r7, #-1] 172*9880d681SAndroid Build Coastguard Worker str r5, [r1, #3] 173*9880d681SAndroid Build Coastguard Worker str r3, [r7, #128] 174*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 175*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r2, [r7, #-1] 176*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 177*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 178*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r5, [r1, #3] 179*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 180*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 181*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r3, [r7, #128] 182*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Worker@ Out of range immediate for SVC instruction. 185*9880d681SAndroid Build Coastguard Worker svc #-1 186*9880d681SAndroid Build Coastguard Worker svc #256 187*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 188*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: svc #-1 189*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 190*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: arm-mode 191*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: svc #256 192*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Worker@ Out of range immediate for ADD SP instructions 196*9880d681SAndroid Build Coastguard Worker add sp, #-1 197*9880d681SAndroid Build Coastguard Worker add sp, #3 198*9880d681SAndroid Build Coastguard Worker add sp, sp, #512 199*9880d681SAndroid Build Coastguard Worker add r2, sp, #1024 200*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 201*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add sp, #-1 202*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 203*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 204*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add sp, #3 205*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 206*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 207*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add sp, sp, #512 208*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 209*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 210*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add r2, sp, #1024 211*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Worker add r2, sp, ip 214*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register must be the same as destination 215*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: add r2, sp, ip 216*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 217*9880d681SAndroid Build Coastguard Worker 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 220*9880d681SAndroid Build Coastguard Worker@ B/Bcc - out of range immediates for Thumb1 branches 221*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 222*9880d681SAndroid Build Coastguard Worker 223*9880d681SAndroid Build Coastguard Worker beq #-258 224*9880d681SAndroid Build Coastguard Worker bne #256 225*9880d681SAndroid Build Coastguard Worker bgt #13 226*9880d681SAndroid Build Coastguard Worker b #-1048578 227*9880d681SAndroid Build Coastguard Worker b #1048576 228*9880d681SAndroid Build Coastguard Worker b #10323 229*9880d681SAndroid Build Coastguard Worker 230*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 231*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 232*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 233*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 234*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 235*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 238*9880d681SAndroid Build Coastguard Worker@ SEV/WFE/WFI/YIELD - are not supported pre v6M or v6T2 239*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 240*9880d681SAndroid Build Coastguard Worker sev 241*9880d681SAndroid Build Coastguard Worker wfe 242*9880d681SAndroid Build Coastguard Worker wfi 243*9880d681SAndroid Build Coastguard Worker yield 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2 246*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: sev 247*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 248*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2 249*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: wfe 250*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 251*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2 252*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: wfi 253*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 254*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2 255*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: yield 256*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^ 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 259*9880d681SAndroid Build Coastguard Worker@ PLDW required mp-extensions 260*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 261*9880d681SAndroid Build Coastguard Worker pldw [r0, #4] 262*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: mp-extensions 263*9880d681SAndroid Build Coastguard Worker 264*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 265*9880d681SAndroid Build Coastguard Worker@ LDR(lit) - invalid offsets 266*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 267*9880d681SAndroid Build Coastguard Worker 268*9880d681SAndroid Build Coastguard Worker ldr r4, [pc, #-12] 269*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2 270*9880d681SAndroid Build Coastguard Worker 271*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 272*9880d681SAndroid Build Coastguard Worker@ STC2{L}/LDC2{L} - requires thumb2 273*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 274*9880d681SAndroid Build Coastguard Worker stc2 p0, c8, [r1, #4] 275*9880d681SAndroid Build Coastguard Worker stc2l p6, c2, [r7, #4] 276*9880d681SAndroid Build Coastguard Worker ldc2 p0, c8, [r1, #4] 277*9880d681SAndroid Build Coastguard Worker ldc2l p6, c2, [r7, #4] 278*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 279*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 280*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 281*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction 282