Fix handling of x18 in AArch64 inline assembly on ohos/trusty or with -Zfixed-x18
This commit is contained in:
parent
e73d32190b
commit
e5bc7e38c3
1 changed files with 8 additions and 3 deletions
|
@ -476,9 +476,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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue