machinst x64: New backend unwind (#2266)
Addresses unwind for experimental x64 backend. The preliminary code enables backtrace on SystemV call convension.
This commit is contained in:
@@ -1034,6 +1034,18 @@ impl<M: ABIMachineSpec> ABICallee for ABICalleeImpl<M> {
|
||||
let ty = ty_from_ty_hint_or_reg_class::<M>(to_reg.to_reg().to_reg(), ty);
|
||||
self.load_spillslot(from_slot, ty, to_reg.map(|r| r.to_reg()))
|
||||
}
|
||||
|
||||
fn unwind_info_kind(&self) -> UnwindInfoKind {
|
||||
match self.sig.call_conv {
|
||||
#[cfg(feature = "unwind")]
|
||||
isa::CallConv::Fast | isa::CallConv::Cold | isa::CallConv::SystemV => {
|
||||
UnwindInfoKind::SystemV
|
||||
}
|
||||
#[cfg(feature = "unwind")]
|
||||
isa::CallConv::WindowsFastcall => UnwindInfoKind::Windows,
|
||||
_ => UnwindInfoKind::None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn abisig_to_uses_and_defs<M: ABIMachineSpec>(sig: &ABISig) -> (Vec<Reg>, Vec<Writable<Reg>>) {
|
||||
|
||||
Reference in New Issue
Block a user