File: armv8.1m-pacbti.s

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (142 lines) | stat: -rw-r--r-- 7,161 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// RUN: llvm-mc -triple thumbv8.1m.main-arm-none-eabi -mattr=+pacbti %s -show-encoding -o - | FileCheck %s --check-prefixes=CHECK,CHECK-PACBTI
// RUN: not llvm-mc -triple thumbv8.1m.main-arm-none-eabi -mattr=-pacbti %s -show-encoding -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPACBTI
// RUN: not llvm-mc -triple thumbv7m-arm-none-eabi %s -show-encoding -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPACBTI

// Non Hint Space instructions and system regs

// CHECK-PACBTI: autg	r0, r1, r2             @ encoding: [0x51,0xfb,0x02,0x0f]
// CHECK-NOPACBTI: error: instruction requires: pacbti
autg r0, r1, r2
// CHECK-PACBTI: autg	r12, lr, sp            @ encoding: [0x5e,0xfb,0x0d,0xcf]
// CHECK-NOPACBTI: error: instruction requires: pacbti
autg ip, lr, sp
// CHECK-PACBTI: bxaut	r0, r1, r2             @ encoding: [0x51,0xfb,0x12,0x0f]
// CHECK-NOPACBTI: error: instruction requires: pacbti
bxaut r0, r1, r2

// CHECK-PACBTI: pacg r0, r1, r2               @ encoding: [0x61,0xfb,0x02,0xf0]
// CHECK-NOPACBTI: error: instruction requires: pacbti
pacg r0, r1, r2
// CHECK-PACBTI: pacg r12, lr, sp              @ encoding: [0x6e,0xfb,0x0d,0xfc]
// CHECK-NOPACBTI: error: instruction requires: pacbti
pacg ip, lr, sp

// CHECK-PACBTI: msr	pac_key_p_0, r0           @ encoding: [0x80,0xf3,0x20,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_0, r0
// CHECK-PACBTI: msr	pac_key_p_1, r0           @ encoding: [0x80,0xf3,0x21,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_1, r0
// CHECK-PACBTI: msr	pac_key_p_2, r0           @ encoding: [0x80,0xf3,0x22,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_2, r0
// CHECK-PACBTI: msr	pac_key_p_3, r0           @ encoding: [0x80,0xf3,0x23,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_3, r0
// CHECK-PACBTI: msr	pac_key_u_0, r0           @ encoding: [0x80,0xf3,0x24,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_0, r0
// CHECK-PACBTI: msr	pac_key_u_1, r0           @ encoding: [0x80,0xf3,0x25,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_1, r0
// CHECK-PACBTI: msr	pac_key_u_2, r0           @ encoding: [0x80,0xf3,0x26,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_2, r0
// CHECK-PACBTI: msr	pac_key_u_3, r0           @ encoding: [0x80,0xf3,0x27,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_3, r0
// CHECK-PACBTI: msr	pac_key_p_0_ns, r0        @ encoding: [0x80,0xf3,0xa0,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_0_ns, r0
// CHECK-PACBTI: msr	pac_key_p_1_ns, r0        @ encoding: [0x80,0xf3,0xa1,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_1_ns, r0
// CHECK-PACBTI: msr	pac_key_p_2_ns, r0        @ encoding: [0x80,0xf3,0xa2,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_2_ns, r0
// CHECK-PACBTI: msr	pac_key_p_3_ns, r0        @ encoding: [0x80,0xf3,0xa3,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_p_3_ns, r0
// CHECK-PACBTI: msr	pac_key_u_0_ns, r0        @ encoding: [0x80,0xf3,0xa4,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_0_ns, r0
// CHECK-PACBTI: msr	pac_key_u_1_ns, r0        @ encoding: [0x80,0xf3,0xa5,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_1_ns, r0
// CHECK-PACBTI: msr	pac_key_u_2_ns, r0        @ encoding: [0x80,0xf3,0xa6,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_2_ns, r0
// CHECK-PACBTI: msr	pac_key_u_3_ns, r0        @ encoding: [0x80,0xf3,0xa7,0x88]
// CHECK-NOPACBTI: error: invalid operand for instruction
msr pac_key_u_3_ns, r0

// CHECK-PACBTI: mrs	r0, pac_key_p_0           @ encoding: [0xef,0xf3,0x20,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_0
// CHECK-PACBTI: mrs	r0, pac_key_p_1           @ encoding: [0xef,0xf3,0x21,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_1
// CHECK-PACBTI: mrs	r0, pac_key_p_2           @ encoding: [0xef,0xf3,0x22,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_2
// CHECK-PACBTI: mrs	r0, pac_key_p_3           @ encoding: [0xef,0xf3,0x23,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_3
// CHECK-PACBTI: mrs	r0, pac_key_u_0           @ encoding: [0xef,0xf3,0x24,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_0
// CHECK-PACBTI: mrs	r0, pac_key_u_1           @ encoding: [0xef,0xf3,0x25,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_1
// CHECK-PACBTI: mrs	r0, pac_key_u_2           @ encoding: [0xef,0xf3,0x26,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_2
// CHECK-PACBTI: mrs	r0, pac_key_u_3           @ encoding: [0xef,0xf3,0x27,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_3
// CHECK-PACBTI: mrs	r0, pac_key_p_0_ns        @ encoding: [0xef,0xf3,0xa0,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_0_ns
// CHECK-PACBTI: mrs	r0, pac_key_p_1_ns        @ encoding: [0xef,0xf3,0xa1,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_1_ns
// CHECK-PACBTI: mrs	r0, pac_key_p_2_ns        @ encoding: [0xef,0xf3,0xa2,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_2_ns
// CHECK-PACBTI: mrs	r0, pac_key_p_3_ns        @ encoding: [0xef,0xf3,0xa3,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_p_3_ns
// CHECK-PACBTI: mrs	r0, pac_key_u_0_ns        @ encoding: [0xef,0xf3,0xa4,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_0_ns
// CHECK-PACBTI: mrs	r0, pac_key_u_1_ns        @ encoding: [0xef,0xf3,0xa5,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_1_ns
// CHECK-PACBTI: mrs	r0, pac_key_u_2_ns        @ encoding: [0xef,0xf3,0xa6,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_2_ns
// CHECK-PACBTI: mrs	r0, pac_key_u_3_ns        @ encoding: [0xef,0xf3,0xa7,0x80]
// CHECK-NOPACBTI: error: invalid operand for instruction
mrs r0, pac_key_u_3_ns

// Hint space instructions - deliberately at the bottom of the file as the
// error's are emitted first.

// CHECK: aut	r12, lr, sp             @ encoding: [0xaf,0xf3,0x2d,0x80]
aut ip, lr, sp
// CHECK: aut	r12,lr,sp               @ encoding: [0xaf,0xf3,0x2d,0x80]
hint.w #45

// CHECK: bti	                        @ encoding: [0xaf,0xf3,0x0f,0x80]
bti
// CHECK: bti	                        @ encoding: [0xaf,0xf3,0x0f,0x80]
hint.w #15

// CHECK: pac r12, lr, sp               @ encoding: [0xaf,0xf3,0x1d,0x80]
pac ip, lr, sp
// CHECK: pac r12,lr,sp                 @ encoding: [0xaf,0xf3,0x1d,0x80]
hint.w #29
// CHECK: pacbti r12, lr, sp            @ encoding: [0xaf,0xf3,0x0d,0x80]
pacbti ip, lr, sp
// CHECK: pacbti r12,lr,sp              @ encoding: [0xaf,0xf3,0x0d,0x80]
hint.w #13