Skip to content

Commit b9e2bdd

Browse files
committed
Fix clobber_abi in RV32E and RV64E inline assembly
1 parent 510943a commit b9e2bdd

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/inline_asm.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,9 +472,14 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> {
472472
let mut new_slot = |x| new_slot_fn(&mut slot_size, x);
473473

474474
// Allocate stack slots for saving clobbered registers
475-
let abi_clobber = InlineAsmClobberAbi::parse(self.arch, &self.tcx.sess.target, sym::C)
476-
.unwrap()
477-
.clobbered_regs();
475+
let abi_clobber = InlineAsmClobberAbi::parse(
476+
self.arch,
477+
&self.tcx.sess.target,
478+
&self.tcx.sess.unstable_target_features,
479+
sym::C,
480+
)
481+
.unwrap()
482+
.clobbered_regs();
478483
for (i, reg) in self.registers.iter().enumerate().filter_map(|(i, r)| r.map(|r| (i, r))) {
479484
let mut need_save = true;
480485
// If the register overlaps with a register clobbered by function call, then

0 commit comments

Comments
 (0)