@@ -88,20 +88,6 @@ fn reserved_x18(
8888 }
8989}
9090
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-
10591def_regs ! {
10692 AArch64 AArch64InlineAsmReg AArch64InlineAsmRegClass {
10793 x0: reg = [ "x0" , "w0" ] ,
@@ -117,23 +103,22 @@ def_regs! {
117103 x10: reg = [ "x10" , "w10" ] ,
118104 x11: reg = [ "x11" , "w11" ] ,
119105 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" ] ,
122108 x15: reg = [ "x15" , "w15" ] ,
123109 x16: reg = [ "x16" , "w16" ] ,
124110 x17: reg = [ "x17" , "w17" ] ,
125111 x18: reg = [ "x18" , "w18" ] % reserved_x18,
126112 x20: reg = [ "x20" , "w20" ] ,
127113 x21: reg = [ "x21" , "w21" ] ,
128114 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" ] ,
131117 x25: reg = [ "x25" , "w25" ] ,
132118 x26: reg = [ "x26" , "w26" ] ,
133119 x27: reg = [ "x27" , "w27" ] ,
134- x28: reg = [ "x28" , "w28" ] % restricted_for_arm64ec ,
120+ x28: reg = [ "x28" , "w28" ] ,
135121 x30: reg = [ "x30" , "w30" , "lr" , "wlr" ] ,
136- // FIXME: z* cannot be used for Arm64EC
137122 v0: vreg, vreg_low16 = [ "v0" , "b0" , "h0" , "s0" , "d0" , "q0" , "z0" ] ,
138123 v1: vreg, vreg_low16 = [ "v1" , "b1" , "h1" , "s1" , "d1" , "q1" , "z1" ] ,
139124 v2: vreg, vreg_low16 = [ "v2" , "b2" , "h2" , "s2" , "d2" , "q2" , "z2" ] ,
@@ -150,39 +135,39 @@ def_regs! {
150135 v13: vreg, vreg_low16 = [ "v13" , "b13" , "h13" , "s13" , "d13" , "q13" , "z13" ] ,
151136 v14: vreg, vreg_low16 = [ "v14" , "b14" , "h14" , "s14" , "d14" , "q14" , "z14" ] ,
152137 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" ] ,
186171 #error = [ "x19" , "w19" ] =>
187172 "x19 is used internally by LLVM and cannot be used as an operand for inline asm" ,
188173 #error = [ "x29" , "w29" , "fp" , "wfp" ] =>
0 commit comments