1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+pauth-
lr < %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
4 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
5 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+pauth-
lr < %s \
6 // RUN
: | llvm-objdump
-d
--mattr
=+pauth-
lr - | FileCheck
%s
--check-prefix
=CHECK-DISASS
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+pauth-
lr < %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=-pauth-
lr - | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
10 // Label at address
4, so we can test that the address shows up in the
16 // CHECK-INST
: paciasppc
17 // CHECK-DISASS
: paciasppc
18 // CHECK-ENCODING
: [0xfe,0xa3,0xc1,0xda]
19 // CHECK-ERROR
: instruction requires
: pauth-
lr
20 // CHECK-UNKNOWN
: dac1a3fe
<unknown
>
23 // CHECK-INST
: pacibsppc
24 // CHECK-DISASS
: pacibsppc
25 // CHECK-ENCODING
: [0xfe,0xa7,0xc1,0xda]
26 // CHECK-ERROR
: instruction requires
: pauth-
lr
27 // CHECK-UNKNOWN
: dac1a7fe
<unknown
>
30 // CHECK-INST
: pacnbiasppc
31 // CHECK-DISASS
: pacnbiasppc
32 // CHECK-ENCODING
: [0xfe,0x83,0xc1,0xda]
33 // CHECK-ERROR
: instruction requires
: pauth-
lr
34 // CHECK-UNKNOWN
: dac183fe
<unknown
>
37 // CHECK-INST
: pacnbibsppc
38 // CHECK-DISASS
: pacnbibsppc
39 // CHECK-ENCODING
: [0xfe,0x87,0xc1,0xda]
40 // CHECK-ERROR
: instruction requires
: pauth-
lr
41 // CHECK-UNKNOWN
: dac187fe
<unknown
>
44 // CHECK-INST
: autiasppc label1
45 // CHECK-DISASS
: autiasppc
0x4 <label1
>
46 // CHECK-ENCODING
: [0bAAA11111
,A,0b100AAAAA
,0xf3]
47 // CHECK-ENCODING
: fixup
A - offset
: 0, value
: label1
, kind
: fixup_aarch64_pcrel_branch16
48 // CHECK-ERROR
: instruction requires
: pauth-
lr
49 // CHECK-UNKNOWN
: f380009f
<unknown
>
52 // CHECK-INST
: autibsppc label1
53 // CHECK-DISASS
: autibsppc
0x4 <label1
>
54 // CHECK-ENCODING
: [0bAAA11111
,A,0b101AAAAA
,0xf3]
55 // CHECK-ENCODING
: fixup
A - offset
: 0, value
: label1
, kind
: fixup_aarch64_pcrel_branch16
56 // CHECK-ERROR
: instruction requires
: pauth-
lr
57 // CHECK-UNKNOWN
: f3a000bf
<unknown
>
60 // CHECK-INST
: autibsppc
#0
61 // CHECK-DISASS
: autibsppc
0x1c <label1+
0x18>
62 // CHECK-ENCODING
: [0x1f,0x00,0xa0,0xf3]
63 // CHECK-ERROR
: instruction requires
: pauth-
lr
64 // CHECK-UNKNOWN
: f3a0001f
<unknown
>
67 // CHECK-INST
: autibsppc
#-262140
68 // CHECK-DISASS
: autibsppc
0xfffffffffffc0024 <label1+
0xfffffffffffc0020>
69 // CHECK-ENCODING
: [0xff,0xff,0xbf,0xf3]
70 // CHECK-ERROR
: instruction requires
: pauth-
lr
71 // CHECK-UNKNOWN
: f3bfffff
<unknown
>
74 // CHECK-INST
: autiasppcr x0
75 // CHECK-DISASS
: autiasppcr x0
76 // CHECK-ENCODING
: [0x1e,0x90,0xc1,0xda]
77 // CHECK-ERROR
: instruction requires
: pauth-
lr
78 // CHECK-UNKNOWN
: dac1901e
<unknown
>
81 // CHECK-INST
: autibsppcr x1
82 // CHECK-DISASS
: autibsppcr x1
83 // CHECK-ENCODING
: [0x3e,0x94,0xc1,0xda]
84 // CHECK-ERROR
: instruction requires
: pauth-
lr
85 // CHECK-UNKNOWN
: dac1943e
<unknown
>
88 // CHECK-INST
: autiasppcr xzr
89 // CHECK-DISASS
: autiasppcr xzr
90 // CHECK-ENCODING
: [0xfe,0x93,0xc1,0xda]
91 // CHECK-ERROR
: instruction requires
: pauth-
lr
92 // CHECK-UNKNOWN
: dac193fe
<unknown
>
95 // CHECK-INST
: autibsppcr xzr
96 // CHECK-DISASS
: autibsppcr xzr
97 // CHECK-ENCODING
: [0xfe,0x97,0xc1,0xda]
98 // CHECK-ERROR
: instruction requires
: pauth-
lr
99 // CHECK-UNKNOWN
: dac197fe
<unknown
>
102 // CHECK-INST
: pacia171615
103 // CHECK-DISASS
: pacia171615
104 // CHECK-ENCODING
: [0xfe,0x8b,0xc1,0xda]
105 // CHECK-ERROR
: instruction requires
: pauth-
lr
106 // CHECK-UNKNOWN
: dac18bfe
<unknown
>
109 // CHECK-INST
: pacib171615
110 // CHECK-DISASS
: pacib171615
111 // CHECK-ENCODING
: [0xfe,0x8f,0xc1,0xda]
112 // CHECK-ERROR
: instruction requires
: pauth-
lr
113 // CHECK-UNKNOWN
: dac18ffe
<unknown
>
116 // CHECK-INST
: autia171615
117 // CHECK-DISASS
: autia171615
118 // CHECK-ENCODING
: [0xfe,0xbb,0xc1,0xda]
119 // CHECK-ERROR
: instruction requires
: pauth-
lr
120 // CHECK-UNKNOWN
: dac1bbfe
<unknown
>
123 // CHECK-INST
: autib171615
124 // CHECK-DISASS
: autib171615
125 // CHECK-ENCODING
: [0xfe,0xbf,0xc1,0xda]
126 // CHECK-ERROR
: instruction requires
: pauth-
lr
127 // CHECK-UNKNOWN
: dac1bffe
<unknown
>
130 // CHECK-INST
: retaasppc label1
131 // CHECK-DISASS
: retaasppc
0x4 <label1
>
132 // CHECK-ENCODING
: [0bAAA11111
,A,0b000AAAAA
,0x55]
133 // CHECK-ENCODING
: // fixup
A - offset
: 0, value
: label1
, kind
: fixup_aarch64_pcrel_branch16
134 // CHECK-ERROR
: instruction requires
: pauth-
lr
135 // CHECK-UNKNOWN
: 5500021f
<unknown
>
138 // CHECK-INST
: retabsppc label1
139 // CHECK-DISASS
: retabsppc
0x4 <label1
>
140 // CHECK-ENCODING
: [0bAAA11111
,A,0b001AAAAA
,0x55]
141 // CHECK-ENCODING
: // fixup
A - offset
: 0, value
: label1
, kind
: fixup_aarch64_pcrel_branch16
142 // CHECK-ERROR
: instruction requires
: pauth-
lr
143 // CHECK-UNKNOWN
: 5520023f
<unknown
>
146 // CHECK-INST
: retaasppc
#0
147 // CHECK-DISASS
: retaasppc
0x4c <label1+
0x48>
148 // CHECK-ENCODING
: [0x1f,0x00,0x00,0x55]
149 // CHECK-ERROR
: instruction requires
: pauth-
lr
150 // CHECK-UNKNOWN
: 5500001f
<unknown
>
152 retaasppc
#-(1<<18)+4
153 // CHECK-INST
: retaasppc
#-262140
154 // CHECK-DISASS
: retaasppc
0xfffffffffffc0054 <label1+
0xfffffffffffc0050>
155 // CHECK-ENCODING
: [0xff,0xff,0x1f,0x55]
156 // CHECK-ERROR
: instruction requires
: pauth-
lr
157 // CHECK-UNKNOWN
: 551fffff
<unknown
>
160 // CHECK-INST
: retaasppcr x2
161 // CHECK-DISASS
: retaasppcr x2
162 // CHECK-ENCODING
: [0xe2,0x0b,0x5f,0xd6]
163 // CHECK-ERROR
: instruction requires
: pauth-
lr
164 // CHECK-UNKNOWN
: d65f0be2
<unknown
>
167 // CHECK-INST
: retabsppcr x3
168 // CHECK-DISASS
: retabsppcr x3
169 // CHECK-ENCODING
: [0xe3,0x0f,0x5f,0xd6]
170 // CHECK-ERROR
: instruction requires
: pauth-
lr
171 // CHECK-UNKNOWN
: d65f0fe3
<unknown
>
175 // CHECK-DISASS
: pacm
176 // CHECK-ENCODING
: [0xff,0x24,0x03,0xd5]
177 // CHECK-ERROR-
NOT: instruction requires
:
178 // CHECK-UNKNOWN
: d50324ff hint
#39