@@ -1399,7 +1399,6 @@ impl Build {
13991399 }
14001400
14011401 let mut cmd = compiler. to_command ( ) ;
1402- let is_arm = matches ! ( target. arch, "aarch64" | "arm64ec" | "arm" ) ;
14031402 command_add_output_file (
14041403 & mut cmd,
14051404 & obj,
@@ -1410,7 +1409,7 @@ impl Build {
14101409 clang : compiler. is_like_clang ( ) ,
14111410 gnu : compiler. is_like_gnu ( ) ,
14121411 is_asm : false ,
1413- is_arm,
1412+ is_arm : is_arm ( target ) ,
14141413 } ,
14151414 ) ;
14161415
@@ -1845,7 +1844,7 @@ impl Build {
18451844 }
18461845 cmd
18471846 } ;
1848- let is_arm = matches ! ( target. arch , "aarch64" | "arm64ec" | "arm" ) ;
1847+ let is_arm = is_arm ( & target) ;
18491848 command_add_output_file (
18501849 & mut cmd,
18511850 & obj. dst ,
@@ -2607,11 +2606,15 @@ impl Build {
26072606 for directory in self . include_directories . iter ( ) {
26082607 cmd. arg ( "-I" ) . arg ( & * * directory) ;
26092608 }
2610- if matches ! ( target. arch , "aarch64" | "arm64ec" | "arm" ) {
2609+ if is_arm ( & target) {
26112610 if self . get_debug ( ) {
26122611 cmd. arg ( "-g" ) ;
26132612 }
26142613
2614+ if target. arch == "arm64ec" {
2615+ cmd. args ( [ "-machine" , "ARM64EC" ] ) ;
2616+ }
2617+
26152618 for ( key, value) in self . definitions . iter ( ) {
26162619 cmd. arg ( "-PreDefine" ) ;
26172620 if let Some ( ref value) = * value {
@@ -4301,6 +4304,10 @@ fn map_darwin_target_from_rust_to_compiler_architecture<'a>(target: &TargetInfo<
43014304 }
43024305}
43034306
4307+ fn is_arm ( target : & TargetInfo < ' _ > ) -> bool {
4308+ matches ! ( target. arch, "aarch64" | "arm64ec" | "arm" )
4309+ }
4310+
43044311#[ derive( Clone , Copy , PartialEq ) ]
43054312enum AsmFileExt {
43064313 /// `.asm` files. On MSVC targets, we assume these should be passed to MASM
0 commit comments