@@ -19,7 +19,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
19
19
- M68k
20
20
- CSKY
21
21
- s390x
22
- - Arm64EC
23
22
24
23
## Register classes
25
24
@@ -55,9 +54,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
55
54
| s390x | ` freg ` | ` f[0-15] ` | ` f ` |
56
55
| s390x | ` vreg ` | ` v[0-31] ` | Only clobbers |
57
56
| s390x | ` areg ` | ` a[2-15] ` | Only clobbers |
58
- | Arm64EC | ` reg ` | ` x[0-12] ` , ` x[15-22] ` , ` x[25-27] ` , ` x30 ` | ` r ` |
59
- | Arm64EC | ` vreg ` | ` v[0-15] ` | ` w ` |
60
- | Arm64EC | ` vreg_low16 ` | ` v[0-15] ` | ` x ` |
61
57
62
58
> ** Notes** :
63
59
> - NVPTX doesn't have a fixed register set, so named registers are not supported.
@@ -95,8 +91,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
95
91
| s390x | ` freg ` | None | ` f32 ` , ` f64 ` |
96
92
| s390x | ` vreg ` | N/A | Only clobbers |
97
93
| s390x | ` areg ` | N/A | Only clobbers |
98
- | Arm64EC | ` reg ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` f32 ` , ` i64 ` , ` f64 ` |
99
- | Arm64EC | ` vreg ` | None | ` i8 ` , ` i16 ` , ` i32 ` , ` f32 ` , ` i64 ` , ` f64 ` , <br > ` i8x8 ` , ` i16x4 ` , ` i32x2 ` , ` i64x1 ` , ` f32x2 ` , ` f64x1 ` , <br > ` i8x16 ` , ` i16x8 ` , ` i32x4 ` , ` i64x2 ` , ` f32x4 ` , ` f64x2 ` |
100
94
101
95
## Register aliases
102
96
@@ -129,12 +123,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
129
123
| CSKY | ` r29 ` | ` rtb ` |
130
124
| CSKY | ` r30 ` | ` svbr ` |
131
125
| CSKY | ` r31 ` | ` tls ` |
132
- | Arm64EC | ` x[0-30] ` | ` w[0-30] ` |
133
- | Arm64EC | ` x29 ` | ` fp ` |
134
- | Arm64EC | ` x30 ` | ` lr ` |
135
- | Arm64EC | ` sp ` | ` wsp ` |
136
- | Arm64EC | ` xzr ` | ` wzr ` |
137
- | Arm64EC | ` v[0-15] ` | ` b[0-15] ` , ` h[0-15] ` , ` s[0-15] ` , ` d[0-15] ` , ` q[0-15] ` |
138
126
139
127
> ** Notes** :
140
128
> - TI does not mandate a frame pointer for MSP430, but toolchains are allowed
@@ -145,8 +133,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
145
133
| Architecture | Unsupported register | Reason |
146
134
| ------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
147
135
| All | ` sp ` , ` r15 ` (s390x) | The stack pointer must be restored to its original value at the end of an asm code block. |
148
- | All | ` fr ` (Hexagon), ` $fp ` (MIPS), ` Y ` (AVR), ` r4 ` (MSP430), ` a6 ` (M68k), ` r11 ` (s390x), ` x29 ` (Arm64EC) | The frame pointer cannot be used as an input or output. |
149
- | All | ` r19 ` (Hexagon), ` x19 ` (Arm64EC) | This is used internally by LLVM as a "base pointer" for functions with complex stack frames. |
136
+ | All | ` fr ` (Hexagon), ` $fp ` (MIPS), ` Y ` (AVR), ` r4 ` (MSP430), ` a6 ` (M68k), ` r11 ` (s390x) | The frame pointer cannot be used as an input or output. |
137
+ | All | ` r19 ` (Hexagon) | This is used internally by LLVM as a "base pointer" for functions with complex stack frames. |
150
138
| MIPS | ` $0 ` or ` $zero ` | This is a constant zero register which can't be modified. |
151
139
| MIPS | ` $1 ` or ` $at ` | Reserved for assembler. |
152
140
| MIPS | ` $26 ` /` $k0 ` , ` $27 ` /` $k1 ` | OS-reserved registers. |
@@ -164,10 +152,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
164
152
| CSKY | ` r31 ` | This is the TLS register. |
165
153
| s390x | ` c[0-15] ` | Reserved by the kernel. |
166
154
| s390x | ` a[0-1] ` | Reserved for system use. |
167
- | Arm64EC | ` xzr ` | This is a constant zero register which can't be modified. |
168
- | Arm64EC | ` x18 ` | This is an OS-reserved register. |
169
- | Arm64EC | ` x13 ` , ` x14 ` , ` x23 ` , ` x24 ` , ` x28 ` , ` v[16-31] ` | These are AArch64 registers that are not supported for Arm64EC. |
170
-
171
155
172
156
## Template modifiers
173
157
@@ -187,16 +171,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
187
171
| s390x | ` freg ` | None | ` %f0 ` | None |
188
172
| CSKY | ` reg ` | None | ` r0 ` | None |
189
173
| CSKY | ` freg ` | None | ` f0 ` | None |
190
- | Arm64EC | ` reg ` | None | ` x0 ` | ` x ` |
191
- | Arm64EC | ` reg ` | ` w ` | ` w0 ` | ` w ` |
192
- | Arm64EC | ` reg ` | ` x ` | ` x0 ` | ` x ` |
193
- | Arm64EC | ` vreg ` | None | ` v0 ` | None |
194
- | Arm64EC | ` vreg ` | ` v ` | ` v0 ` | None |
195
- | Arm64EC | ` vreg ` | ` b ` | ` b0 ` | ` b ` |
196
- | Arm64EC | ` vreg ` | ` h ` | ` h0 ` | ` h ` |
197
- | Arm64EC | ` vreg ` | ` s ` | ` s0 ` | ` s ` |
198
- | Arm64EC | ` vreg ` | ` d ` | ` d0 ` | ` d ` |
199
- | Arm64EC | ` vreg ` | ` q ` | ` q0 ` | ` q ` |
200
174
201
175
# Flags covered by ` preserves_flags `
202
176
@@ -209,6 +183,3 @@ These flags registers must be restored upon exiting the asm block if the `preser
209
183
- The condition code register ` ccr ` .
210
184
- s390x
211
185
- The condition code register ` cc ` .
212
- - Arm64EC
213
- - Condition flags (` NZCV ` register).
214
- - Floating-point status (` FPSR ` register).
0 commit comments