@@ -88,20 +88,6 @@ fn reserved_x18(
88
88
}
89
89
}
90
90
91
- fn restricted_for_arm64ec (
92
- arch : InlineAsmArch ,
93
- _reloc_model : RelocModel ,
94
- _target_features : & FxIndexSet < Symbol > ,
95
- _target : & Target ,
96
- _is_clobber : bool ,
97
- ) -> Result < ( ) , & ' static str > {
98
- if arch == InlineAsmArch :: Arm64EC {
99
- Err ( "x13, x14, x23, x24, x28, v16-v31, z*, p*, ffr cannot be used for Arm64EC" )
100
- } else {
101
- Ok ( ( ) )
102
- }
103
- }
104
-
105
91
def_regs ! {
106
92
AArch64 AArch64InlineAsmReg AArch64InlineAsmRegClass {
107
93
x0: reg = [ "x0" , "w0" ] ,
@@ -117,23 +103,22 @@ def_regs! {
117
103
x10: reg = [ "x10" , "w10" ] ,
118
104
x11: reg = [ "x11" , "w11" ] ,
119
105
x12: reg = [ "x12" , "w12" ] ,
120
- x13: reg = [ "x13" , "w13" ] % restricted_for_arm64ec ,
121
- x14: reg = [ "x14" , "w14" ] % restricted_for_arm64ec ,
106
+ x13: reg = [ "x13" , "w13" ] ,
107
+ x14: reg = [ "x14" , "w14" ] ,
122
108
x15: reg = [ "x15" , "w15" ] ,
123
109
x16: reg = [ "x16" , "w16" ] ,
124
110
x17: reg = [ "x17" , "w17" ] ,
125
111
x18: reg = [ "x18" , "w18" ] % reserved_x18,
126
112
x20: reg = [ "x20" , "w20" ] ,
127
113
x21: reg = [ "x21" , "w21" ] ,
128
114
x22: reg = [ "x22" , "w22" ] ,
129
- x23: reg = [ "x23" , "w23" ] % restricted_for_arm64ec ,
130
- x24: reg = [ "x24" , "w24" ] % restricted_for_arm64ec ,
115
+ x23: reg = [ "x23" , "w23" ] ,
116
+ x24: reg = [ "x24" , "w24" ] ,
131
117
x25: reg = [ "x25" , "w25" ] ,
132
118
x26: reg = [ "x26" , "w26" ] ,
133
119
x27: reg = [ "x27" , "w27" ] ,
134
- x28: reg = [ "x28" , "w28" ] % restricted_for_arm64ec ,
120
+ x28: reg = [ "x28" , "w28" ] ,
135
121
x30: reg = [ "x30" , "w30" , "lr" , "wlr" ] ,
136
- // FIXME: z* cannot be used for Arm64EC
137
122
v0: vreg, vreg_low16 = [ "v0" , "b0" , "h0" , "s0" , "d0" , "q0" , "z0" ] ,
138
123
v1: vreg, vreg_low16 = [ "v1" , "b1" , "h1" , "s1" , "d1" , "q1" , "z1" ] ,
139
124
v2: vreg, vreg_low16 = [ "v2" , "b2" , "h2" , "s2" , "d2" , "q2" , "z2" ] ,
@@ -150,39 +135,39 @@ def_regs! {
150
135
v13: vreg, vreg_low16 = [ "v13" , "b13" , "h13" , "s13" , "d13" , "q13" , "z13" ] ,
151
136
v14: vreg, vreg_low16 = [ "v14" , "b14" , "h14" , "s14" , "d14" , "q14" , "z14" ] ,
152
137
v15: vreg, vreg_low16 = [ "v15" , "b15" , "h15" , "s15" , "d15" , "q15" , "z15" ] ,
153
- v16: vreg = [ "v16" , "b16" , "h16" , "s16" , "d16" , "q16" , "z16" ] % restricted_for_arm64ec ,
154
- v17: vreg = [ "v17" , "b17" , "h17" , "s17" , "d17" , "q17" , "z17" ] % restricted_for_arm64ec ,
155
- v18: vreg = [ "v18" , "b18" , "h18" , "s18" , "d18" , "q18" , "z18" ] % restricted_for_arm64ec ,
156
- v19: vreg = [ "v19" , "b19" , "h19" , "s19" , "d19" , "q19" , "z19" ] % restricted_for_arm64ec ,
157
- v20: vreg = [ "v20" , "b20" , "h20" , "s20" , "d20" , "q20" , "z20" ] % restricted_for_arm64ec ,
158
- v21: vreg = [ "v21" , "b21" , "h21" , "s21" , "d21" , "q21" , "z21" ] % restricted_for_arm64ec ,
159
- v22: vreg = [ "v22" , "b22" , "h22" , "s22" , "d22" , "q22" , "z22" ] % restricted_for_arm64ec ,
160
- v23: vreg = [ "v23" , "b23" , "h23" , "s23" , "d23" , "q23" , "z23" ] % restricted_for_arm64ec ,
161
- v24: vreg = [ "v24" , "b24" , "h24" , "s24" , "d24" , "q24" , "z24" ] % restricted_for_arm64ec ,
162
- v25: vreg = [ "v25" , "b25" , "h25" , "s25" , "d25" , "q25" , "z25" ] % restricted_for_arm64ec ,
163
- v26: vreg = [ "v26" , "b26" , "h26" , "s26" , "d26" , "q26" , "z26" ] % restricted_for_arm64ec ,
164
- v27: vreg = [ "v27" , "b27" , "h27" , "s27" , "d27" , "q27" , "z27" ] % restricted_for_arm64ec ,
165
- v28: vreg = [ "v28" , "b28" , "h28" , "s28" , "d28" , "q28" , "z28" ] % restricted_for_arm64ec ,
166
- v29: vreg = [ "v29" , "b29" , "h29" , "s29" , "d29" , "q29" , "z29" ] % restricted_for_arm64ec ,
167
- v30: vreg = [ "v30" , "b30" , "h30" , "s30" , "d30" , "q30" , "z30" ] % restricted_for_arm64ec ,
168
- v31: vreg = [ "v31" , "b31" , "h31" , "s31" , "d31" , "q31" , "z31" ] % restricted_for_arm64ec ,
169
- p0: preg = [ "p0" ] % restricted_for_arm64ec ,
170
- p1: preg = [ "p1" ] % restricted_for_arm64ec ,
171
- p2: preg = [ "p2" ] % restricted_for_arm64ec ,
172
- p3: preg = [ "p3" ] % restricted_for_arm64ec ,
173
- p4: preg = [ "p4" ] % restricted_for_arm64ec ,
174
- p5: preg = [ "p5" ] % restricted_for_arm64ec ,
175
- p6: preg = [ "p6" ] % restricted_for_arm64ec ,
176
- p7: preg = [ "p7" ] % restricted_for_arm64ec ,
177
- p8: preg = [ "p8" ] % restricted_for_arm64ec ,
178
- p9: preg = [ "p9" ] % restricted_for_arm64ec ,
179
- p10: preg = [ "p10" ] % restricted_for_arm64ec ,
180
- p11: preg = [ "p11" ] % restricted_for_arm64ec ,
181
- p12: preg = [ "p12" ] % restricted_for_arm64ec ,
182
- p13: preg = [ "p13" ] % restricted_for_arm64ec ,
183
- p14: preg = [ "p14" ] % restricted_for_arm64ec ,
184
- p15: preg = [ "p15" ] % restricted_for_arm64ec ,
185
- ffr: preg = [ "ffr" ] % restricted_for_arm64ec ,
138
+ v16: vreg = [ "v16" , "b16" , "h16" , "s16" , "d16" , "q16" , "z16" ] ,
139
+ v17: vreg = [ "v17" , "b17" , "h17" , "s17" , "d17" , "q17" , "z17" ] ,
140
+ v18: vreg = [ "v18" , "b18" , "h18" , "s18" , "d18" , "q18" , "z18" ] ,
141
+ v19: vreg = [ "v19" , "b19" , "h19" , "s19" , "d19" , "q19" , "z19" ] ,
142
+ v20: vreg = [ "v20" , "b20" , "h20" , "s20" , "d20" , "q20" , "z20" ] ,
143
+ v21: vreg = [ "v21" , "b21" , "h21" , "s21" , "d21" , "q21" , "z21" ] ,
144
+ v22: vreg = [ "v22" , "b22" , "h22" , "s22" , "d22" , "q22" , "z22" ] ,
145
+ v23: vreg = [ "v23" , "b23" , "h23" , "s23" , "d23" , "q23" , "z23" ] ,
146
+ v24: vreg = [ "v24" , "b24" , "h24" , "s24" , "d24" , "q24" , "z24" ] ,
147
+ v25: vreg = [ "v25" , "b25" , "h25" , "s25" , "d25" , "q25" , "z25" ] ,
148
+ v26: vreg = [ "v26" , "b26" , "h26" , "s26" , "d26" , "q26" , "z26" ] ,
149
+ v27: vreg = [ "v27" , "b27" , "h27" , "s27" , "d27" , "q27" , "z27" ] ,
150
+ v28: vreg = [ "v28" , "b28" , "h28" , "s28" , "d28" , "q28" , "z28" ] ,
151
+ v29: vreg = [ "v29" , "b29" , "h29" , "s29" , "d29" , "q29" , "z29" ] ,
152
+ v30: vreg = [ "v30" , "b30" , "h30" , "s30" , "d30" , "q30" , "z30" ] ,
153
+ v31: vreg = [ "v31" , "b31" , "h31" , "s31" , "d31" , "q31" , "z31" ] ,
154
+ p0: preg = [ "p0" ] ,
155
+ p1: preg = [ "p1" ] ,
156
+ p2: preg = [ "p2" ] ,
157
+ p3: preg = [ "p3" ] ,
158
+ p4: preg = [ "p4" ] ,
159
+ p5: preg = [ "p5" ] ,
160
+ p6: preg = [ "p6" ] ,
161
+ p7: preg = [ "p7" ] ,
162
+ p8: preg = [ "p8" ] ,
163
+ p9: preg = [ "p9" ] ,
164
+ p10: preg = [ "p10" ] ,
165
+ p11: preg = [ "p11" ] ,
166
+ p12: preg = [ "p12" ] ,
167
+ p13: preg = [ "p13" ] ,
168
+ p14: preg = [ "p14" ] ,
169
+ p15: preg = [ "p15" ] ,
170
+ ffr: preg = [ "ffr" ] ,
186
171
#error = [ "x19" , "w19" ] =>
187
172
"x19 is used internally by LLVM and cannot be used as an operand for inline asm" ,
188
173
#error = [ "x29" , "w29" , "fp" , "wfp" ] =>
0 commit comments