Skip to content

Commit bdc8a1a

Browse files
committed
Add support for ppc64le clobber_abi
1 parent aca749e commit bdc8a1a

File tree

1 file changed

+15
-1
lines changed
  • compiler/rustc_target/src/asm

1 file changed

+15
-1
lines changed

compiler/rustc_target/src/asm/mod.rs

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::spec::Target;
2-
use crate::{abi::Size, spec::RelocModel};
2+
use crate::{abi::Endian, abi::Size, spec::RelocModel};
33
use rustc_data_structures::fx::{FxHashMap, FxIndexSet};
44
use rustc_macros::HashStable_Generic;
55
use rustc_span::Symbol;
@@ -878,6 +878,7 @@ pub enum InlineAsmClobberAbi {
878878
AArch64NoX18,
879879
RiscV,
880880
LoongArch,
881+
PowerPC64ElfV2,
881882
}
882883

883884
impl InlineAsmClobberAbi {
@@ -927,6 +928,12 @@ impl InlineAsmClobberAbi {
927928
"C" | "system" => Ok(InlineAsmClobberAbi::LoongArch),
928929
_ => Err(&["C", "system"]),
929930
},
931+
InlineAsmArch::PowerPC64 => match name {
932+
"C" | "system" if target.endian == Endian::Little => {
933+
Ok(InlineAsmClobberAbi::PowerPC64ElfV2)
934+
}
935+
_ => Err(&["C", "system"]),
936+
},
930937
_ => Err(&[]),
931938
}
932939
}
@@ -1084,6 +1091,13 @@ impl InlineAsmClobberAbi {
10841091
f16, f17, f18, f19, f20, f21, f22, f23,
10851092
}
10861093
},
1094+
InlineAsmClobberAbi::PowerPC64ElfV2 => clobbered_regs! {
1095+
PowerPC PowerPCInlineAsmReg {
1096+
r0, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12,
1097+
xer, cr0, cr1, cr5, cr6, cr7,
1098+
f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13,
1099+
}
1100+
},
10871101
}
10881102
}
10891103
}

0 commit comments

Comments
 (0)