diff options
| author | Taiki Endo <te316e89@gmail.com> | 2024-11-25 00:36:22 +0900 |
|---|---|---|
| committer | Taiki Endo <te316e89@gmail.com> | 2024-11-25 00:36:22 +0900 |
| commit | b9e2bdd050f1e076fc3a215e2a02e19b3f9a3fc1 (patch) | |
| tree | 0d538f01e1d9f7e45dde9a1f4bd9cfab492c42f9 | |
| parent | 510943ab554801afb8aa96da6bc02ebe580c96f5 (diff) | |
| download | rust-b9e2bdd050f1e076fc3a215e2a02e19b3f9a3fc1.tar.gz rust-b9e2bdd050f1e076fc3a215e2a02e19b3f9a3fc1.zip | |
Fix clobber_abi in RV32E and RV64E inline assembly
| -rw-r--r-- | src/inline_asm.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/inline_asm.rs b/src/inline_asm.rs index 70176754f33..73ee47b2c63 100644 --- a/src/inline_asm.rs +++ b/src/inline_asm.rs @@ -472,9 +472,14 @@ impl<'tcx> InlineAssemblyGenerator<'_, 'tcx> { let mut new_slot = |x| new_slot_fn(&mut slot_size, x); // Allocate stack slots for saving clobbered registers - let abi_clobber = InlineAsmClobberAbi::parse(self.arch, &self.tcx.sess.target, sym::C) - .unwrap() - .clobbered_regs(); + let abi_clobber = InlineAsmClobberAbi::parse( + self.arch, + &self.tcx.sess.target, + &self.tcx.sess.unstable_target_features, + sym::C, + ) + .unwrap() + .clobbered_regs(); for (i, reg) in self.registers.iter().enumerate().filter_map(|(i, r)| r.map(|r| (i, r))) { let mut need_save = true; // If the register overlaps with a register clobbered by function call, then |
