Skip to content

Commit e985396

Browse files
committed
llvm: Match aarch64 data layout to new LLVM layout
LLVM has added 3 new address spaces to support special Windows use cases. These shouldn't trouble us for now, but LLVM requires matching data layouts. See llvm/llvm-project#111879 for details
1 parent a0c2aba commit e985396

39 files changed

+72
-38
lines changed

compiler/rustc_codegen_llvm/src/context.rs

+10
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,16 @@ pub(crate) unsafe fn create_module<'ll>(
138138
}
139139
}
140140

141+
if llvm_version < (20, 0, 0) {
142+
if sess.target.arch == "aarch64" || sess.target.arch.starts_with("arm64") {
143+
// LLVM 20 defines three additional address spaces for alternate
144+
// pointer kinds used in Windows.
145+
// See https://github.com/llvm/llvm-project/pull/111879
146+
target_data_layout =
147+
target_data_layout.replace("-p270:32:32-p271:32:32-p272:64:64", "");
148+
}
149+
}
150+
141151
// Ensure the data-layout values hardcoded remain the defaults.
142152
{
143153
let tm = crate::back::write::create_informational_target_machine(tcx.sess, false);

compiler/rustc_target/src/spec/targets/aarch64_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
mcount: "\u{1}mcount".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a12".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_sim.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos_sim.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(false),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a16".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos_sim.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(false),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a16".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+v8a,+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos_sim.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_kmc_solid_asp3.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub(crate) fn target() -> Target {
1111
std: Some(true),
1212
},
1313
pointer_width: 64,
14-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
14+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
arch: "aarch64".into(),
1616
options: TargetOptions {
1717
linker: Some("aarch64-kmc-elf-gcc".into()),

compiler/rustc_target/src/spec/targets/aarch64_linux_android.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub(crate) fn target() -> Target {
1313
std: Some(true),
1414
},
1515
pointer_width: 64,
16-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
16+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1717
arch: "aarch64".into(),
1818
options: TargetOptions {
1919
max_atomic_width: Some(128),

compiler/rustc_target/src/spec/targets/aarch64_nintendo_switch_freestanding.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target {
1515
std: Some(false),
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
18+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: TargetOptions {
2121
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_gnullvm.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ pub(crate) fn target() -> Target {
1515
std: Some(true),
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
18+
data_layout:
19+
"e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
20+
.into(),
1921
arch: "aarch64".into(),
2022
options: base,
2123
}

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_msvc.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ pub(crate) fn target() -> Target {
1414
std: Some(true),
1515
},
1616
pointer_width: 64,
17-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
17+
data_layout:
18+
"e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
19+
.into(),
1820
arch: "aarch64".into(),
1921
options: base,
2022
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_freebsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_fuchsia.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_hermit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub(crate) fn target() -> Target {
1111
},
1212
pointer_width: 64,
1313
arch: "aarch64".into(),
14-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
14+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
options: TargetOptions {
1616
features: "+v8a,+strict-align,+neon,+fp-armv8".into(),
1717
max_atomic_width: Some(128),

compiler/rustc_target/src/spec/targets/aarch64_unknown_illumos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pub(crate) fn target() -> Target {
1818
std: Some(true),
1919
},
2020
pointer_width: 64,
21-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
21+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2222
arch: "aarch64".into(),
2323
options: base,
2424
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a,+outline-atomics".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub(crate) fn target() -> Target {
2121
std: Some(true),
2222
},
2323
pointer_width: 64,
24-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
24+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2525
arch: "aarch64".into(),
2626
options: TargetOptions { mcount: "\u{1}_mcount".into(), ..base },
2727
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_ohos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub(crate) fn target() -> Target {
1313
std: Some(true),
1414
},
1515
pointer_width: 64,
16-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
16+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1717
arch: "aarch64".into(),
1818
options: TargetOptions {
1919
features: "+reserve-x18".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_netbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_none.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub(crate) fn target() -> Target {
3737
std: Some(false),
3838
},
3939
pointer_width: 64,
40-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
40+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
4141
arch: "aarch64".into(),
4242
options: opts,
4343
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub(crate) fn target() -> Target {
3232
std: Some(false),
3333
},
3434
pointer_width: 64,
35-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
35+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
3636
arch: "aarch64".into(),
3737
options: opts,
3838
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_nto_qnx700.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub(crate) fn target() -> Target {
2222
// i128:128 = 128-bit-integer, minimum_alignment=128, preferred_alignment=128
2323
// n32:64 = 32 and 64 are native integer widths; Elements of this set are considered to support most general arithmetic operations efficiently.
2424
// S128 = 128 bits are the natural alignment of the stack in bits.
25-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
25+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2626
arch: "aarch64".into(),
2727
options: TargetOptions {
2828
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_openbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_redox.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target {
1515
std: None, // ?
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
18+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: base,
2121
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_teeos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target {
1515
std: None, // ?
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
18+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: base,
2121
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_trusty.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub(crate) fn target() -> Target {
1212
std: Some(false),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1616
arch: "aarch64".into(),
1717
options: TargetOptions {
1818
features: "+neon,+fp-armv8,+reserve-x18".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ pub(crate) fn target() -> Target {
1919
std: None, // ?
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
22+
data_layout:
23+
"e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
24+
.into(),
2325
arch: "aarch64".into(),
2426
options: base,
2527
}

compiler/rustc_target/src/spec/targets/aarch64_uwp_windows_msvc.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ pub(crate) fn target() -> Target {
1414
std: None, // ?
1515
},
1616
pointer_width: 64,
17-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
17+
data_layout:
18+
"e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
19+
.into(),
1820
arch: "aarch64".into(),
1921
options: base,
2022
}

compiler/rustc_target/src/spec/targets/aarch64_wrs_vxworks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
std: Some(true),
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
13+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/arm64_32_apple_watchos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 32,
15-
data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout:
16+
"e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32".into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+v8a,+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/arm64e_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
mcount: "\u{1}mcount".into(),

compiler/rustc_target/src/spec/targets/arm64e_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a12,+v8.3a,+pauth".into(),

compiler/rustc_target/src/spec/targets/arm64e_apple_tvos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub(crate) fn target() -> Target {
1212
std: Some(true),
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
15+
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
16+
.into(),
1617
arch,
1718
options: TargetOptions {
1819
features: "+neon,+fp-armv8,+apple-a12,+v8.3a,+pauth".into(),

compiler/rustc_target/src/spec/targets/arm64ec_pc_windows_msvc.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ pub(crate) fn target() -> Target {
1818
std: None, // ?
1919
},
2020
pointer_width: 64,
21-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
21+
data_layout:
22+
"e-m:w-p270:32:32-p271:32:32-p272:64:64-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32"
23+
.into(),
2224
arch: "arm64ec".into(),
2325
options: base,
2426
}

0 commit comments

Comments
 (0)