xref: /aosp_15_r20/external/llvm/test/MC/ARM/thumb2-mclass.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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