Skip to content

Commit b5cc03b

Browse files
committed
Update powerpc64 data layout
1 parent 6eaf227 commit b5cc03b

File tree

6 files changed

+9
-10
lines changed

6 files changed

+9
-10
lines changed

compiler/rustc_codegen_llvm/src/context.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,6 @@ fn to_llvm_tls_model(tls_model: TlsModel) -> llvm::ThreadLocalMode {
115115
}
116116
}
117117

118-
fn strip_powerpc64_vectors(data_layout: String) -> String {
119-
data_layout.replace("-v256:256:256-v512:512:512", "")
120-
}
121-
122118
pub unsafe fn create_module(
123119
tcx: TyCtxt<'_>,
124120
llcx: &'ll llvm::Context,
@@ -130,9 +126,12 @@ pub unsafe fn create_module(
130126

131127
let mut target_data_layout = sess.target.data_layout.clone();
132128
if llvm_util::get_version() < (12, 0, 0) && sess.target.arch == "powerpc64" {
133-
target_data_layout = strip_powerpc64_vectors(target_data_layout);
129+
target_data_layout = target_data_layout.replace("-v256:256:256-v512:512:512", "");
134130
}
135131
if llvm_util::get_version() < (13, 0, 0) {
132+
if sess.target.arch == "powerpc64" {
133+
target_data_layout = target_data_layout.replace("-S128", "");
134+
}
136135
if sess.target.arch == "wasm32" {
137136
target_data_layout = "e-m:e-p:32:32-i64:64-n32:64-S128".to_string();
138137
}

compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
Target {
1515
llvm_target: "powerpc64-unknown-linux-gnu".to_string(),
1616
pointer_width: 64,
17-
data_layout: "E-m:e-i64:64-n32:64-v256:256:256-v512:512:512".to_string(),
17+
data_layout: "E-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".to_string(),
1818
arch: "powerpc64".to_string(),
1919
options: TargetOptions { endian: Endian::Big, mcount: "_mcount".to_string(), ..base },
2020
}

compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
Target {
1111
llvm_target: "powerpc64-unknown-linux-musl".to_string(),
1212
pointer_width: 64,
13-
data_layout: "E-m:e-i64:64-n32:64-v256:256:256-v512:512:512".to_string(),
13+
data_layout: "E-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".to_string(),
1414
arch: "powerpc64".to_string(),
1515
options: TargetOptions { endian: Endian::Big, mcount: "_mcount".to_string(), ..base },
1616
}

compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
Target {
1111
llvm_target: "powerpc64-unknown-linux-gnu".to_string(),
1212
pointer_width: 64,
13-
data_layout: "E-m:e-i64:64-n32:64-v256:256:256-v512:512:512".to_string(),
13+
data_layout: "E-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".to_string(),
1414
arch: "powerpc64".to_string(),
1515
options: TargetOptions { endian: Endian::Big, ..base },
1616
}

compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub fn target() -> Target {
99
Target {
1010
llvm_target: "powerpc64le-unknown-linux-gnu".to_string(),
1111
pointer_width: 64,
12-
data_layout: "e-m:e-i64:64-n32:64-v256:256:256-v512:512:512".to_string(),
12+
data_layout: "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".to_string(),
1313
arch: "powerpc64".to_string(),
1414
options: TargetOptions { mcount: "_mcount".to_string(), ..base },
1515
}

compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub fn target() -> Target {
99
Target {
1010
llvm_target: "powerpc64le-unknown-linux-musl".to_string(),
1111
pointer_width: 64,
12-
data_layout: "e-m:e-i64:64-n32:64-v256:256:256-v512:512:512".to_string(),
12+
data_layout: "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".to_string(),
1313
arch: "powerpc64".to_string(),
1414
options: TargetOptions { mcount: "_mcount".to_string(), ..base },
1515
}

0 commit comments

Comments
 (0)