Displaying 3 results from an estimated 3 matches for "__built_eh_return".
Did you mean:
__builtin_eh_return
2018 Jan 24
1
Exception handling support for a target
...the spills.
>
Ben, thanks for your input. However, I don't quite understand what you
said.
The prototype of __builtin_eh_return (offset, handler) [1], I can't see
why it forces spilling all non-volatile registers (I assume non-volatile ==
callee-saved).
Take libgcc as an example, __built_eh_return is called in
uw_install_context [1], which is called in the end of
_Unwind_RaiseException [2]. Do you mean we should compile libgcc without
optimization?
[1] https://github.com/gcc-mirror/gcc/blob/master/libgcc/unwind-dw2.c
[2] https://github.com/gcc-mirror/gcc/blob/master/libgcc/unwind.inc
--...
2018 Jan 23
0
Exception handling support for a target
The high level of what happens is that __builtin_eh_return forces a spill of all the non-volatile registers. The unwinder then has a starting point for populating and adjusting those non-volatile registers.
This approach usually requires that the function calling __builtin_eh_return be built without optimizations, because the optimizer will then remove the spills.
From: llvm-dev
2018 Jan 22
4
Exception handling support for a target
On 22 Jan 2018, at 14:15, Krzysztof Parzyszek via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> On 1/19/2018 7:21 PM, 陳韋任 wrote:
>> I see X86, Mips, XCore and Hexagon define their own EH_RETURN and lower to it, but others don't. May I know why it's so on Hexagon?
>
> Our exception handling runtime uses __builtin_eh_return.
Does this mean that you know what it