@@ -96,7 +96,7 @@ fn restricted_for_arm64ec(
9696 _is_clobber : bool ,
9797) -> Result < ( ) , & ' static str > {
9898 if arch == InlineAsmArch :: Arm64EC {
99- Err ( "x13, x14, x23, x24, x28, v16-v31 cannot be used for Arm64EC" )
99+ Err ( "x13, x14, x23, x24, x28, v16-v31, z*, p*, ffr cannot be used for Arm64EC" )
100100 } else {
101101 Ok ( ( ) )
102102 }
@@ -133,6 +133,7 @@ def_regs! {
133133 x27: reg = [ "x27" , "w27" ] ,
134134 x28: reg = [ "x28" , "w28" ] % restricted_for_arm64ec,
135135 x30: reg = [ "x30" , "w30" , "lr" , "wlr" ] ,
136+ // FIXME: z* cannot be used for Arm64EC
136137 v0: vreg, vreg_low16 = [ "v0" , "b0" , "h0" , "s0" , "d0" , "q0" , "z0" ] ,
137138 v1: vreg, vreg_low16 = [ "v1" , "b1" , "h1" , "s1" , "d1" , "q1" , "z1" ] ,
138139 v2: vreg, vreg_low16 = [ "v2" , "b2" , "h2" , "s2" , "d2" , "q2" , "z2" ] ,
@@ -165,23 +166,23 @@ def_regs! {
165166 v29: vreg = [ "v29" , "b29" , "h29" , "s29" , "d29" , "q29" , "z29" ] % restricted_for_arm64ec,
166167 v30: vreg = [ "v30" , "b30" , "h30" , "s30" , "d30" , "q30" , "z30" ] % restricted_for_arm64ec,
167168 v31: vreg = [ "v31" , "b31" , "h31" , "s31" , "d31" , "q31" , "z31" ] % restricted_for_arm64ec,
168- p0: preg = [ "p0" ] ,
169- p1: preg = [ "p1" ] ,
170- p2: preg = [ "p2" ] ,
171- p3: preg = [ "p3" ] ,
172- p4: preg = [ "p4" ] ,
173- p5: preg = [ "p5" ] ,
174- p6: preg = [ "p6" ] ,
175- p7: preg = [ "p7" ] ,
176- p8: preg = [ "p8" ] ,
177- p9: preg = [ "p9" ] ,
178- p10: preg = [ "p10" ] ,
179- p11: preg = [ "p11" ] ,
180- p12: preg = [ "p12" ] ,
181- p13: preg = [ "p13" ] ,
182- p14: preg = [ "p14" ] ,
183- p15: preg = [ "p15" ] ,
184- ffr: preg = [ "ffr" ] ,
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 ,
185186 #error = [ "x19" , "w19" ] =>
186187 "x19 is used internally by LLVM and cannot be used as an operand for inline asm" ,
187188 #error = [ "x29" , "w29" , "fp" , "wfp" ] =>
0 commit comments