rustc_target/spec/targets/
mipsel_sony_psp.rs1use crate::spec::{
2 Arch, Cc, LinkerFlavor, Lld, LlvmAbi, Os, RelocModel, Target, TargetMetadata, TargetOptions,
3 cvs,
4};
5
6const LINKER_SCRIPT: &str = include_str!("./mipsel_sony_psp_linker_script.ld");
8
9pub(crate) fn target() -> Target {
10 let pre_link_args = TargetOptions::link_args(
11 LinkerFlavor::Gnu(Cc::No, Lld::No),
12 &["--emit-relocs", "--nmagic"],
13 );
14
15 Target {
16 llvm_target: "mipsel-sony-psp".into(),
17 metadata: TargetMetadata {
18 description: Some("MIPS (LE) Sony PlatStation Portable (PSP)".into()),
19 tier: Some(3),
20 host_tools: Some(false),
21 std: Some(false),
22 },
23 pointer_width: 32,
24 data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".into(),
25 arch: Arch::Mips,
26
27 options: TargetOptions {
28 os: Os::Psp,
29 vendor: "sony".into(),
30 linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
31 cpu: "mips2".into(),
32 linker: Some("rust-lld".into()),
33 relocation_model: RelocModel::Static,
34
35 features: "+single-float".into(),
37
38 llvm_args: cvs!["-mno-check-zero-division"],
40 llvm_abiname: LlvmAbi::O32,
41 pre_link_args,
42 link_script: Some(LINKER_SCRIPT.into()),
43 ..Default::default()
44 },
45 }
46}