• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: not llvm-mc -disassemble -triple=thumbv8m.main -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck %s
2# RUN: FileCheck <%t --check-prefix=ERROR %s
3
4# GCP instructions
5
6# CHECK: mrc p3, #1, r3, c15, c15, #5
7[0x3f,0xee,0xbf,0x33]
8# CHECK-NEXT: mcr2 p3, #2, r2, c7, c11, #7
9[0x47,0xfe,0xfb,0x23]
10
11# Predication
12
13# CHECK: itte eq
14[0x06,0xbf]
15itte eq
16# CHECK-NEXT: cx1aeq p0, r3, #8191
17[0x3f,0xfe,0xbf,0x30]
18# CHECK-NEXT: cx2aeq p0, r2, r3, #123
19[0x43,0xfe,0xbb,0x20]
20# CHECK-NEXT: cx3ane p0, r1, r5, r7, #63
21[0xf5,0xfe,0xb1,0x70]
22# CHECK-NEXT: itte eq
23[0x06,0xbf]
24# CHECK-NEXT: cx1daeq p0, r0, r1, #8191
25[0x3f,0xfe,0xff,0x00]
26# CHECK-NEXT: cx2daeq p0, r0, r1, r3, #123
27[0x43,0xfe,0xfb,0x00]
28# CHECK-NEXT: cx3dane p0, r0, r1, r5, r7, #63
29[0xf5,0xfe,0xf0,0x70]
30
31# CX1
32
33# CHECK-NEXT: cx1	p0, r3, #8191
34[0x3f,0xee,0xbf,0x30]
35# CHECK-NEXT: cx1a	p1, r2, #0
36[0x00,0xfe,0x00,0x21]
37# CHECK-NEXT: cx1d     p0, r4, r5, #1234
38[0x09,0xee,0xd2,0x40]
39# CHECK-NEXT: cx1da	p1, r2, r3, #1234
40[0x09,0xfe,0xd2,0x21]
41# CHECK-NEXT: cx1	p0, apsr_nzcv, #8191
42[0x3f,0xee,0xbf,0xf0]
43
44# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding
45# CHECK-NEXT: cx1 p0, sp, #8191
46[0x3f,0xee,0xbf,0xd0]
47# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding
48# CHECK-NEXT: cx1d p0, r12, sp, #1234
49[0x09,0xee,0xd2,0xc0]
50# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding
51# CHECK-NEXT: cx1d p0, r2, r3, #1234
52[0x09,0xee,0xd2,0x30]
53
54# CX2
55
56# CHECK-NEXT: cx2	p0, r3, r7, #0
57[0x47,0xee,0x00,0x30]
58# CHECK-NEXT: cx2a	p0, r1, r4, #511
59[0x74,0xfe,0xbf,0x10]
60# CHECK-NEXT: cx2d	p0, r2, r3, r1, #123
61[0x41,0xee,0xfb,0x20]
62# CHECK-NEXT: cx2da p0, r2, r3, r7, #123
63[0x47,0xfe,0xfb,0x20]
64# CHECK-NEXT: cx2da p1, r10, r11, apsr_nzcv, #123
65[0x4f,0xfe,0xfb,0xa1]
66
67# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding
68# CHECK-NEXT: cx2a	p0, r1, sp, #511
69[0x7d,0xfe,0xbf,0x10]
70# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
71[0x4f,0xfe,0xfb,0xe1]
72
73# CX3
74
75# CHECK-NEXT: cx3 p0, r1, r2, r3, #0
76[0x82,0xee,0x01,0x30]
77# CHECK-NEXT: cx3a p0, r1, r5, r7, #63
78[0xf5,0xfe,0xb1,0x70]
79# CHECK-NEXT: cx3d p1, r0, r1, r7, r1, #12
80[0x97,0xee,0xc0,0x11]
81# CHECK-NEXT: cx3da p0, r8, r9, r2, r3, #12
82[0x92,0xfe,0xc8,0x30]
83# CHECK-NEXT: cx3	p1, apsr_nzcv, r7, apsr_nzcv, #12
84[0x97,0xee,0x8f,0xf1]
85# CHECK-NEXT: cx3d	p0, r8, r9, apsr_nzcv, apsr_nzcv, #12
86[0x9f,0xee,0xc8,0xf0]
87
88# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding
89# CHECK-NEXT: cx3 p0, r1, r2, sp, #0
90[0x82,0xee,0x01,0xd0]
91# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
92[0x9f,0xee,0xce,0xf0]
93
94# VCX1
95
96# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
97[0x69,0xec,0x92,0x50]
98# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
99[0x6f,0xfc,0xbf,0x31]
100# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
101[0x20,0xed,0x00,0x00]
102# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
103[0x2f,0xfd,0xbf,0x31]
104# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
105[0x29,0xec,0xd2,0x20]
106# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
107[0x2f,0xfd,0xff,0xa1]
108
109# VCX2
110
111# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
112[0x33,0xec,0x2f,0x00]
113# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
114[0x7f,0xfc,0xb0,0x00]
115# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
116[0x30,0xed,0x2f,0x00]
117# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
118[0x3f,0xfd,0xb6,0x10]
119# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
120[0x3e,0xed,0xfe,0x01]
121# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
122[0x3f,0xfd,0xde,0x61]
123
124# VCX3
125
126# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
127[0x8f,0xec,0x90,0x00]
128# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
129[0xf8,0xfc,0xb5,0x01]
130# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
131[0x8f,0xed,0x87,0x00]
132# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
133[0xb6,0xfd,0xb6,0x11]
134# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
135[0xae,0xed,0xc0,0x00]
136# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding
137[0xbe,0xfd,0x7e,0x61]
138