Rollup merge of #132741 - zmodem:mips_data_layout, r=nikic

Update mips64 data layout to match LLVM 20 change

LLVM changed the data layout in https://github.com/llvm/llvm-project/pull/112084
This commit is contained in:
Jubilee 2024-11-07 18:48:26 -08:00 committed by GitHub
commit 97dbab9124
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 12 additions and 7 deletions

View File

@ -154,6 +154,11 @@ pub(crate) unsafe fn create_module<'ll>(
// See https://github.com/llvm/llvm-project/pull/106951 // See https://github.com/llvm/llvm-project/pull/106951
target_data_layout = target_data_layout.replace("-i128:128", ""); target_data_layout = target_data_layout.replace("-i128:128", "");
} }
if sess.target.arch.starts_with("mips64") {
// LLVM 20 updates the mips64 layout to correctly align 128 bit integers to 128 bit.
// See https://github.com/llvm/llvm-project/pull/112084
target_data_layout = target_data_layout.replace("-i128:128", "");
}
} }
// Ensure the data-layout values hardcoded remain the defaults. // Ensure the data-layout values hardcoded remain the defaults.

View File

@ -20,7 +20,7 @@ pub(crate) fn target() -> Target {
std: None, // ? std: None, // ?
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64".into(), arch: "mips64".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),

View File

@ -11,7 +11,7 @@ pub(crate) fn target() -> Target {
std: Some(true), std: Some(true),
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64".into(), arch: "mips64".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),

View File

@ -16,7 +16,7 @@ pub(crate) fn target() -> Target {
std: Some(true), std: Some(true),
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64".into(), arch: "mips64".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),

View File

@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
std: Some(true), std: Some(true),
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64".into(), arch: "mips64".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),

View File

@ -15,7 +15,7 @@ pub(crate) fn target() -> Target {
std: Some(true), std: Some(true),
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64".into(), arch: "mips64".into(),
options: TargetOptions { abi: "abi64".into(), mcount: "_mcount".into(), ..base }, options: TargetOptions { abi: "abi64".into(), mcount: "_mcount".into(), ..base },
} }

View File

@ -11,7 +11,7 @@ pub(crate) fn target() -> Target {
std: None, // ? std: None, // ?
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64r6".into(), arch: "mips64r6".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),

View File

@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
std: Some(true), std: Some(true),
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".into(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
arch: "mips64r6".into(), arch: "mips64r6".into(),
options: TargetOptions { options: TargetOptions {
abi: "abi64".into(), abi: "abi64".into(),