Skip to content

Commit a3af532

Browse files
authored
Rollup merge of #111237 - loongarch-rs:clobber-abi, r=Amanieu
asm: loongarch64: Implementation of clobber_abi r? ```@Amanieu```
2 parents e4eaf31 + 08fc451 commit a3af532

File tree

1 file changed

+20
-0
lines changed
  • compiler/rustc_target/src/asm

1 file changed

+20
-0
lines changed

compiler/rustc_target/src/asm/mod.rs

+20
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,7 @@ pub enum InlineAsmClobberAbi {
839839
AArch64,
840840
AArch64NoX18,
841841
RiscV,
842+
LoongArch,
842843
}
843844

844845
impl InlineAsmClobberAbi {
@@ -880,6 +881,10 @@ impl InlineAsmClobberAbi {
880881
"C" | "system" | "efiapi" => Ok(InlineAsmClobberAbi::RiscV),
881882
_ => Err(&["C", "system", "efiapi"]),
882883
},
884+
InlineAsmArch::LoongArch64 => match name {
885+
"C" | "system" | "efiapi" => Ok(InlineAsmClobberAbi::LoongArch),
886+
_ => Err(&["C", "system", "efiapi"]),
887+
},
883888
_ => Err(&[]),
884889
}
885890
}
@@ -1022,6 +1027,21 @@ impl InlineAsmClobberAbi {
10221027
v24, v25, v26, v27, v28, v29, v30, v31,
10231028
}
10241029
},
1030+
InlineAsmClobberAbi::LoongArch => clobbered_regs! {
1031+
LoongArch LoongArchInlineAsmReg {
1032+
// ra
1033+
r1,
1034+
// a0-a7
1035+
r4, r5, r6, r7, r8, r9, r10, r11,
1036+
// t0-t8
1037+
r12, r13, r14, r15, r16, r17, r18, r19, r20,
1038+
// fa0-fa7
1039+
f0, f1, f2, f3, f4, f5, f6, f7,
1040+
// ft0-ft15
1041+
f8, f9, f10, f11, f12, f13, f14, f15,
1042+
f16, f17, f18, f19, f20, f21, f22, f23,
1043+
}
1044+
},
10251045
}
10261046
}
10271047
}

0 commit comments

Comments
 (0)