Check in a patch that has already been code reviewed by Owen that I'd forgotten to...
[oota-llvm.git] / test / MC / ARM / thumb2-mclass.s
1 @ RUN: llvm-mc -triple=thumbv7m-apple-darwin -show-encoding < %s | FileCheck %s
2   .syntax unified
3   .globl _func
4
5 @ Check that the assembler can handle the documented syntax from the ARM ARM.
6 @ These tests test instruction encodings specific to v7m & v7m (FeatureMClass).
7
8 @------------------------------------------------------------------------------
9 @ MRS
10 @------------------------------------------------------------------------------
11
12         mrs  r0, apsr
13         mrs  r0, iapsr
14         mrs  r0, eapsr
15         mrs  r0, xpsr
16         mrs  r0, ipsr
17         mrs  r0, epsr
18         mrs  r0, iepsr
19         mrs  r0, msp
20         mrs  r0, psp
21         mrs  r0, primask
22         mrs  r0, basepri
23         mrs  r0, basepri_max
24         mrs  r0, faultmask
25         mrs  r0, control
26
27 @ CHECK: mrs    r0, apsr                @ encoding: [0xef,0xf3,0x00,0x80]
28 @ CHECK: mrs    r0, iapsr               @ encoding: [0xef,0xf3,0x01,0x80]
29 @ CHECK: mrs    r0, eapsr               @ encoding: [0xef,0xf3,0x02,0x80]
30 @ CHECK: mrs    r0, xpsr                @ encoding: [0xef,0xf3,0x03,0x80]
31 @ CHECK: mrs    r0, ipsr                @ encoding: [0xef,0xf3,0x05,0x80]
32 @ CHECK: mrs    r0, epsr                @ encoding: [0xef,0xf3,0x06,0x80]
33 @ CHECK: mrs    r0, iepsr               @ encoding: [0xef,0xf3,0x07,0x80]
34 @ CHECK: mrs    r0, msp                 @ encoding: [0xef,0xf3,0x08,0x80]
35 @ CHECK: mrs    r0, psp                 @ encoding: [0xef,0xf3,0x09,0x80]
36 @ CHECK: mrs    r0, primask             @ encoding: [0xef,0xf3,0x10,0x80]
37 @ CHECK: mrs    r0, basepri             @ encoding: [0xef,0xf3,0x11,0x80]
38 @ CHECK: mrs    r0, basepri_max         @ encoding: [0xef,0xf3,0x12,0x80]
39 @ CHECK: mrs    r0, faultmask           @ encoding: [0xef,0xf3,0x13,0x80]
40 @ CHECK: mrs    r0, control             @ encoding: [0xef,0xf3,0x14,0x80]
41
42 @------------------------------------------------------------------------------
43 @ MSR
44 @------------------------------------------------------------------------------
45
46         msr  apsr, r0
47         msr  iapsr, r0
48         msr  eapsr, r0
49         msr  xpsr, r0
50         msr  ipsr, r0
51         msr  epsr, r0
52         msr  iepsr, r0
53         msr  msp, r0
54         msr  psp, r0
55         msr  primask, r0
56         msr  basepri, r0
57         msr  basepri_max, r0
58         msr  faultmask, r0
59         msr  control, r0
60
61 @ CHECK: msr    apsr, r0                @ encoding: [0x80,0xf3,0x00,0x80]
62 @ CHECK: msr    iapsr, r0               @ encoding: [0x80,0xf3,0x01,0x80]
63 @ CHECK: msr    eapsr, r0               @ encoding: [0x80,0xf3,0x02,0x80]
64 @ CHECK: msr    xpsr, r0                @ encoding: [0x80,0xf3,0x03,0x80]
65 @ CHECK: msr    ipsr, r0                @ encoding: [0x80,0xf3,0x05,0x80]
66 @ CHECK: msr    epsr, r0                @ encoding: [0x80,0xf3,0x06,0x80]
67 @ CHECK: msr    iepsr, r0               @ encoding: [0x80,0xf3,0x07,0x80]
68 @ CHECK: msr    msp, r0                 @ encoding: [0x80,0xf3,0x08,0x80]
69 @ CHECK: msr    psp, r0                 @ encoding: [0x80,0xf3,0x09,0x80]
70 @ CHECK: msr    primask, r0             @ encoding: [0x80,0xf3,0x10,0x80]
71 @ CHECK: msr    basepri, r0             @ encoding: [0x80,0xf3,0x11,0x80]
72 @ CHECK: msr    basepri_max, r0         @ encoding: [0x80,0xf3,0x12,0x80]
73 @ CHECK: msr    faultmask, r0           @ encoding: [0x80,0xf3,0x13,0x80]
74 @ CHECK: msr    control, r0             @ encoding: [0x80,0xf3,0x14,0x80]