File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -251,7 +251,6 @@ fn build_isa(sess: &Session, backend_config: &BackendConfig) -> Box<dyn isa::Tar
251
251
252
252
let mut flags_builder = settings:: builder ( ) ;
253
253
flags_builder. enable ( "is_pic" ) . unwrap ( ) ;
254
- flags_builder. set ( "enable_probestack" , "false" ) . unwrap ( ) ; // __cranelift_probestack is not provided
255
254
let enable_verifier = if backend_config. enable_verifier { "true" } else { "false" } ;
256
255
flags_builder. set ( "enable_verifier" , enable_verifier) . unwrap ( ) ;
257
256
flags_builder. set ( "regalloc_checker" , enable_verifier) . unwrap ( ) ;
@@ -279,6 +278,15 @@ fn build_isa(sess: &Session, backend_config: &BackendConfig) -> Box<dyn isa::Tar
279
278
}
280
279
}
281
280
281
+ if target_triple. architecture == target_lexicon:: Architecture :: X86_64 {
282
+ // Windows depends on stack probes to grow the committed part of the stack
283
+ flags_builder. enable ( "enable_probestack" ) . unwrap ( ) ;
284
+ flags_builder. set ( "probestack_strategy" , "inline" ) . unwrap ( ) ;
285
+ } else {
286
+ // __cranelift_probestack is not provided and inline stack probes are only supported on x86_64
287
+ flags_builder. set ( "enable_probestack" , "false" ) . unwrap ( ) ;
288
+ }
289
+
282
290
let flags = settings:: Flags :: new ( flags_builder) ;
283
291
284
292
let isa_builder = match sess. opts . cg . target_cpu . as_deref ( ) {
You can’t perform that action at this time.
0 commit comments