diff options
Diffstat (limited to 'src/librustc/back/mips.rs')
| -rw-r--r-- | src/librustc/back/mips.rs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/librustc/back/mips.rs b/src/librustc/back/mips.rs new file mode 100644 index 00000000000..32d434ed49d --- /dev/null +++ b/src/librustc/back/mips.rs @@ -0,0 +1,85 @@ +// 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 back::target_strs; +use driver::session; +use session::sess_os_to_meta_os; +use metadata::loader::meta_section_name; + +pub fn get_target_strs(target_os: session::os) -> target_strs::t { + return target_strs::t { + module_asm: ~"", + + meta_sect_name: meta_section_name(sess_os_to_meta_os(target_os)), + + data_layout: match target_os { + session::os_macos => { + ~"e-p:32:32:32" + + ~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" + + ~"-f32:32:32-f64:64:64" + + ~"-v64:64:64-v128:64:128" + + ~"-a0:0:64-n32" + } + + session::os_win32 => { + ~"e-p:32:32:32" + + ~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" + + ~"-f32:32:32-f64:64:64" + + ~"-v64:64:64-v128:64:128" + + ~"-a0:0:64-n32" + } + + session::os_linux => { + ~"e-p:32:32:32" + + ~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" + + ~"-f32:32:32-f64:64:64" + + ~"-v64:64:64-v128:64:128" + + ~"-a0:0:64-n32" + } + + session::os_android => { + ~"e-p:32:32:32" + + ~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" + + ~"-f32:32:32-f64:64:64" + + ~"-v64:64:64-v128:64:128" + + ~"-a0:0:64-n32" + } + + session::os_freebsd => { + ~"e-p:32:32:32" + + ~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" + + ~"-f32:32:32-f64:64:64" + + ~"-v64:64:64-v128:64:128" + + ~"-a0:0:64-n32" + } + }, + + target_triple: match target_os { + session::os_macos => ~"mips-apple-darwin", + session::os_win32 => ~"mips-pc-mingw32", + session::os_linux => ~"mips-unknown-linux-gnu", + session::os_android => ~"mips-unknown-android-gnu", + session::os_freebsd => ~"mips-unknown-freebsd" + }, + + cc_args: ~[] + }; +} + + +// +// Local Variables: +// mode: rust +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// End: +// |
