@ RUN: llvm-mc -triple=thumbv7m-apple-darwin -show-encoding < %s | FileCheck %s | |
.syntax unified | |
.globl _func | |
@ Check that the assembler can handle the documented syntax from the ARM ARM. | |
@ These tests test instruction encodings specific to v7m & v7m (FeatureMClass). | |
@------------------------------------------------------------------------------ | |
@ MRS | |
@------------------------------------------------------------------------------ | |
mrs r0, apsr | |
mrs r0, iapsr | |
mrs r0, eapsr | |
mrs r0, xpsr | |
mrs r0, ipsr | |
mrs r0, epsr | |
mrs r0, iepsr | |
mrs r0, msp | |
mrs r0, psp | |
mrs r0, primask | |
mrs r0, basepri | |
mrs r0, basepri_max | |
mrs r0, faultmask | |
mrs r0, control | |
@ CHECK: mrs r0, apsr @ encoding: [0xef,0xf3,0x00,0x80] | |
@ CHECK: mrs r0, iapsr @ encoding: [0xef,0xf3,0x01,0x80] | |
@ CHECK: mrs r0, eapsr @ encoding: [0xef,0xf3,0x02,0x80] | |
@ CHECK: mrs r0, xpsr @ encoding: [0xef,0xf3,0x03,0x80] | |
@ CHECK: mrs r0, ipsr @ encoding: [0xef,0xf3,0x05,0x80] | |
@ CHECK: mrs r0, epsr @ encoding: [0xef,0xf3,0x06,0x80] | |
@ CHECK: mrs r0, iepsr @ encoding: [0xef,0xf3,0x07,0x80] | |
@ CHECK: mrs r0, msp @ encoding: [0xef,0xf3,0x08,0x80] | |
@ CHECK: mrs r0, psp @ encoding: [0xef,0xf3,0x09,0x80] | |
@ CHECK: mrs r0, primask @ encoding: [0xef,0xf3,0x10,0x80] | |
@ CHECK: mrs r0, basepri @ encoding: [0xef,0xf3,0x11,0x80] | |
@ CHECK: mrs r0, basepri_max @ encoding: [0xef,0xf3,0x12,0x80] | |
@ CHECK: mrs r0, faultmask @ encoding: [0xef,0xf3,0x13,0x80] | |
@ CHECK: mrs r0, control @ encoding: [0xef,0xf3,0x14,0x80] | |
@------------------------------------------------------------------------------ | |
@ MSR | |
@------------------------------------------------------------------------------ | |
msr apsr, r0 | |
msr iapsr, r0 | |
msr eapsr, r0 | |
msr xpsr, r0 | |
msr ipsr, r0 | |
msr epsr, r0 | |
msr iepsr, r0 | |
msr msp, r0 | |
msr psp, r0 | |
msr primask, r0 | |
msr basepri, r0 | |
msr basepri_max, r0 | |
msr faultmask, r0 | |
msr control, r0 | |
@ CHECK: msr apsr, r0 @ encoding: [0x80,0xf3,0x00,0x80] | |
@ CHECK: msr iapsr, r0 @ encoding: [0x80,0xf3,0x01,0x80] | |
@ CHECK: msr eapsr, r0 @ encoding: [0x80,0xf3,0x02,0x80] | |
@ CHECK: msr xpsr, r0 @ encoding: [0x80,0xf3,0x03,0x80] | |
@ CHECK: msr ipsr, r0 @ encoding: [0x80,0xf3,0x05,0x80] | |
@ CHECK: msr epsr, r0 @ encoding: [0x80,0xf3,0x06,0x80] | |
@ CHECK: msr iepsr, r0 @ encoding: [0x80,0xf3,0x07,0x80] | |
@ CHECK: msr msp, r0 @ encoding: [0x80,0xf3,0x08,0x80] | |
@ CHECK: msr psp, r0 @ encoding: [0x80,0xf3,0x09,0x80] | |
@ CHECK: msr primask, r0 @ encoding: [0x80,0xf3,0x10,0x80] | |
@ CHECK: msr basepri, r0 @ encoding: [0x80,0xf3,0x11,0x80] | |
@ CHECK: msr basepri_max, r0 @ encoding: [0x80,0xf3,0x12,0x80] | |
@ CHECK: msr faultmask, r0 @ encoding: [0x80,0xf3,0x13,0x80] | |
@ CHECK: msr control, r0 @ encoding: [0x80,0xf3,0x14,0x80] |