Skip to content

Commit ed9e6f2

Browse files
committed
Enable inline stack probes on X86 with LLVM 16
1 parent 1bb8d27 commit ed9e6f2

36 files changed

+87
-65
lines changed

compiler/rustc_target/src/spec/i386_apple_ios.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ pub fn target() -> Target {
1414
arch: "x86".into(),
1515
options: TargetOptions {
1616
max_atomic_width: Some(64),
17-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
18-
stack_probes: StackProbeType::Call,
17+
stack_probes: StackProbeType::X86,
1918
..base
2019
},
2120
}

compiler/rustc_target/src/spec/i686_apple_darwin.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ pub fn target() -> Target {
77
base.max_atomic_width = Some(64);
88
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
99
base.link_env_remove.to_mut().extend(super::apple_base::macos_link_env_remove());
10-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
11-
base.stack_probes = StackProbeType::Call;
10+
base.stack_probes = StackProbeType::X86;
1211
base.frame_pointer = FramePointer::Always;
1312

1413
// Clang automatically chooses a more specific target based on

compiler/rustc_target/src/spec/i686_linux_android.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ pub fn target() -> Target {
1111
// https://developer.android.com/ndk/guides/abis.html#x86
1212
base.cpu = "pentiumpro".into();
1313
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3".into();
14-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
15-
base.stack_probes = StackProbeType::Call;
14+
base.stack_probes = StackProbeType::X86;
1615

1716
Target {
1817
llvm_target: "i686-linux-android".into(),

compiler/rustc_target/src/spec/i686_unknown_freebsd.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32", "-Wl,-znotext"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
Target {
1211
llvm_target: "i686-unknown-freebsd".into(),

compiler/rustc_target/src/spec/i686_unknown_haiku.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
Target {
1211
llvm_target: "i686-unknown-haiku".into(),

compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.supported_sanitizers = SanitizerSet::ADDRESS;
88
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
9-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10-
base.stack_probes = StackProbeType::Call;
9+
base.stack_probes = StackProbeType::X86;
1110

1211
Target {
1312
llvm_target: "i686-unknown-linux-gnu".into(),

compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32", "-Wl,-melf_i386"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
// The unwinder used by i686-unknown-linux-musl, the LLVM libunwind
1211
// implementation, apparently relies on frame pointers existing... somehow.

compiler/rustc_target/src/spec/i686_unknown_netbsd.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
Target {
1211
llvm_target: "i686-unknown-netbsdelf".into(),

compiler/rustc_target/src/spec/i686_unknown_openbsd.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32", "-fuse-ld=lld"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
Target {
1211
llvm_target: "i686-unknown-openbsd".into(),

compiler/rustc_target/src/spec/i686_wrs_vxworks.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".into();
66
base.max_atomic_width = Some(64);
77
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
8-
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9-
base.stack_probes = StackProbeType::Call;
8+
base.stack_probes = StackProbeType::X86;
109

1110
Target {
1211
llvm_target: "i686-unknown-linux-gnu".into(),

0 commit comments

Comments
 (0)