diff options
| author | Richo Healey <richo@psych0tik.net> | 2015-01-09 20:03:37 -0800 |
|---|---|---|
| committer | Richo Healey <richo@psych0tik.net> | 2015-01-11 21:14:31 -0800 |
| commit | 33cd9cf9f463b6eb6153d0698ca8d209ab95efec (patch) | |
| tree | a7ad64a6dce95f0d59b01b550bc06c0c12448ba1 /src | |
| parent | c8442afeb066656c4f4db3ca8538ee5976b504f6 (diff) | |
| download | rust-33cd9cf9f463b6eb6153d0698ca8d209ab95efec.tar.gz rust-33cd9cf9f463b6eb6153d0698ca8d209ab95efec.zip | |
powerpc: initialize llvm
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_back/target/powerpc_unknown_linux_gnu.rs | 26 | ||||
| -rw-r--r-- | src/librustc_llvm/lib.rs | 11 | ||||
| -rw-r--r-- | src/librustc_trans/back/write.rs | 6 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/librustc_back/target/powerpc_unknown_linux_gnu.rs b/src/librustc_back/target/powerpc_unknown_linux_gnu.rs new file mode 100644 index 00000000000..34f4d165c7a --- /dev/null +++ b/src/librustc_back/target/powerpc_unknown_linux_gnu.rs @@ -0,0 +1,26 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use target::Target; + +pub fn target() -> Target { + let mut base = super::linux_base::opts(); + base.pre_link_args.push("-m32".to_string()); + + Target { + data_layout: "E-S8-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32".to_string(), + llvm_target: "powerpc-unknown-linux-gnu".to_string(), + target_endian: "big".to_string(), + target_word_size: "32".to_string(), + arch: "powerpc".to_string(), + target_os: "linux".to_string(), + options: base, + } +} diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs index a4f9b1f98d4..3edb1ec48a0 100644 --- a/src/librustc_llvm/lib.rs +++ b/src/librustc_llvm/lib.rs @@ -1974,6 +1974,11 @@ extern { pub fn LLVMInitializeMipsTargetMC(); pub fn LLVMInitializeMipsAsmPrinter(); pub fn LLVMInitializeMipsAsmParser(); + pub fn LLVMInitializePowerPCTargetInfo(); + pub fn LLVMInitializePowerPCTarget(); + pub fn LLVMInitializePowerPCTargetMC(); + pub fn LLVMInitializePowerPCAsmPrinter(); + pub fn LLVMInitializePowerPCAsmParser(); pub fn LLVMRustAddPass(PM: PassManagerRef, Pass: *const c_char) -> bool; pub fn LLVMRustCreateTargetMachine(Triple: *const c_char, @@ -2249,6 +2254,12 @@ pub unsafe fn static_link_hack_this_sucks() { LLVMInitializeMipsAsmPrinter(); LLVMInitializeMipsAsmParser(); + LLVMInitializePowerPCTargetInfo(); + LLVMInitializePowerPCTarget(); + LLVMInitializePowerPCTargetMC(); + LLVMInitializePowerPCAsmPrinter(); + LLVMInitializePowerPCAsmParser(); + LLVMRustSetLLVMOptions(0 as c_int, 0 as *const _); diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs index c818dda7581..aa51b0c5ee2 100644 --- a/src/librustc_trans/back/write.rs +++ b/src/librustc_trans/back/write.rs @@ -1039,6 +1039,12 @@ unsafe fn configure_llvm(sess: &Session) { llvm::LLVMInitializeMipsAsmPrinter(); llvm::LLVMInitializeMipsAsmParser(); + llvm::LLVMInitializePowerPCTargetInfo(); + llvm::LLVMInitializePowerPCTarget(); + llvm::LLVMInitializePowerPCTargetMC(); + llvm::LLVMInitializePowerPCAsmPrinter(); + llvm::LLVMInitializePowerPCAsmParser(); + llvm::LLVMRustSetLLVMOptions(llvm_args.len() as c_int, llvm_args.as_ptr()); }); |
