@@ -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