1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple=thumbv6m -show-encoding < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V6M %s 2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple=thumbv7m -show-encoding < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V7M %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker .syntax unified 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker@ Check that the assembler can handle the documented syntax from the ARM ARM. 7*9880d681SAndroid Build Coastguard Worker@ These tests test instruction encodings specific to v6m & v7m (FeatureMClass). 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 10*9880d681SAndroid Build Coastguard Worker@ MRS 11*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker mrs r0, apsr 14*9880d681SAndroid Build Coastguard Worker mrs r0, iapsr 15*9880d681SAndroid Build Coastguard Worker mrs r0, eapsr 16*9880d681SAndroid Build Coastguard Worker mrs r0, xpsr 17*9880d681SAndroid Build Coastguard Worker mrs r0, ipsr 18*9880d681SAndroid Build Coastguard Worker mrs r0, epsr 19*9880d681SAndroid Build Coastguard Worker mrs r0, iepsr 20*9880d681SAndroid Build Coastguard Worker mrs r0, msp 21*9880d681SAndroid Build Coastguard Worker mrs r0, psp 22*9880d681SAndroid Build Coastguard Worker mrs r0, primask 23*9880d681SAndroid Build Coastguard Worker mrs r0, control 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, apsr @ encoding: [0xef,0xf3,0x00,0x80] 26*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, iapsr @ encoding: [0xef,0xf3,0x01,0x80] 27*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, eapsr @ encoding: [0xef,0xf3,0x02,0x80] 28*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, xpsr @ encoding: [0xef,0xf3,0x03,0x80] 29*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, ipsr @ encoding: [0xef,0xf3,0x05,0x80] 30*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, epsr @ encoding: [0xef,0xf3,0x06,0x80] 31*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, iepsr @ encoding: [0xef,0xf3,0x07,0x80] 32*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, msp @ encoding: [0xef,0xf3,0x08,0x80] 33*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, psp @ encoding: [0xef,0xf3,0x09,0x80] 34*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, primask @ encoding: [0xef,0xf3,0x10,0x80] 35*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs r0, control @ encoding: [0xef,0xf3,0x14,0x80] 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 38*9880d681SAndroid Build Coastguard Worker@ MSR 39*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------ 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker msr apsr, r0 42*9880d681SAndroid Build Coastguard Worker msr apsr_nzcvq, r0 43*9880d681SAndroid Build Coastguard Worker msr iapsr, r0 44*9880d681SAndroid Build Coastguard Worker msr iapsr_nzcvq, r0 45*9880d681SAndroid Build Coastguard Worker msr eapsr, r0 46*9880d681SAndroid Build Coastguard Worker msr eapsr_nzcvq, r0 47*9880d681SAndroid Build Coastguard Worker msr xpsr, r0 48*9880d681SAndroid Build Coastguard Worker msr xpsr_nzcvq, r0 49*9880d681SAndroid Build Coastguard Worker msr ipsr, r0 50*9880d681SAndroid Build Coastguard Worker msr epsr, r0 51*9880d681SAndroid Build Coastguard Worker msr iepsr, r0 52*9880d681SAndroid Build Coastguard Worker msr msp, r0 53*9880d681SAndroid Build Coastguard Worker msr psp, r0 54*9880d681SAndroid Build Coastguard Worker msr primask, r0 55*9880d681SAndroid Build Coastguard Worker msr control, r0 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr apsr, r0 @ encoding: [0x80,0xf3,0x00,0x88] 58*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr apsr, r0 @ encoding: [0x80,0xf3,0x00,0x88] 59*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr iapsr, r0 @ encoding: [0x80,0xf3,0x01,0x88] 60*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr iapsr, r0 @ encoding: [0x80,0xf3,0x01,0x88] 61*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr eapsr, r0 @ encoding: [0x80,0xf3,0x02,0x88] 62*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr eapsr, r0 @ encoding: [0x80,0xf3,0x02,0x88] 63*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr xpsr, r0 @ encoding: [0x80,0xf3,0x03,0x88] 64*9880d681SAndroid Build Coastguard Worker@ CHECK-V6M: msr xpsr, r0 @ encoding: [0x80,0xf3,0x03,0x88] 65*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr apsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x00,0x88] 66*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr apsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x00,0x88] 67*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr iapsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x01,0x88] 68*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr iapsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x01,0x88] 69*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr eapsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x02,0x88] 70*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr eapsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x02,0x88] 71*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr xpsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x03,0x88] 72*9880d681SAndroid Build Coastguard Worker@ CHECK-V7M: msr xpsr_nzcvq, r0 @ encoding: [0x80,0xf3,0x03,0x88] 73*9880d681SAndroid Build Coastguard Worker@ CHECK: msr ipsr, r0 @ encoding: [0x80,0xf3,0x05,0x88] 74*9880d681SAndroid Build Coastguard Worker@ CHECK: msr epsr, r0 @ encoding: [0x80,0xf3,0x06,0x88] 75*9880d681SAndroid Build Coastguard Worker@ CHECK: msr iepsr, r0 @ encoding: [0x80,0xf3,0x07,0x88] 76*9880d681SAndroid Build Coastguard Worker@ CHECK: msr msp, r0 @ encoding: [0x80,0xf3,0x08,0x88] 77*9880d681SAndroid Build Coastguard Worker@ CHECK: msr psp, r0 @ encoding: [0x80,0xf3,0x09,0x88] 78*9880d681SAndroid Build Coastguard Worker@ CHECK: msr primask, r0 @ encoding: [0x80,0xf3,0x10,0x88] 79*9880d681SAndroid Build Coastguard Worker@ CHECK: msr control, r0 @ encoding: [0x80,0xf3,0x14,0x88] 80