Gary Guo
Gary Guo
Could you provide a MCVE?
For the save routine, saving caller-saved registers are moot because these register can be considered already-clobbered when _Unwind_RaiseException is called. For restore, I play a bit conservative and restore all...
I have no much experience with MIPS, but in RISC-V, callee-saved FP registers need to restored. For example, in https://godbolt.org/z/6aKvv5EcE you can see the landing pad uses `fmv.s fa0, fs0`...
For RISC-V we use `cfg(target_feature = "d")` to detect FP support. Is there no equivalent for MIPS?
I guess "soft-float" should be used then.
I think for riscv64gc-unknown-none-elf panic=abort is the default?
I guess I could check the IR to see where resume calls are generated, and try to tweak the code to not generate them... This will be fragile though
BTW I tried to reproduce this on my x64 machine with rustc cross-compiling to aarch64 and riscv64 but can't reproduce it. Maybe Rustc's LLVM is compiled with different flags on...
Ah I can produce it by downloading the prebuilt standard library, but not with `-Zbuild-std`, weird.
It looks like things work with a non-zero `opt-level` even with debug info enabled. @sunfishcode maybe you workaround on c-ward side by something like this while waiting for LLVM fix...