Commit 139eda62 by Richard Kenner

(L_eh: __unwind_function): Implement for VAX.

From-SVN: r10539
parent 2c3aa1ba
...@@ -2390,6 +2390,22 @@ __unwind_function(void *ptr) ...@@ -2390,6 +2390,22 @@ __unwind_function(void *ptr)
asm("# br"); asm("# br");
asm("mtctr 3;bctr # b 3"); asm("mtctr 3;bctr # b 3");
} }
#elif #machine(vax)
__unwind_function(void *ptr)
{
__label__ return_again;
/* Replace our frame's return address with the label below.
During execution, we will first return here instead of to
caller, then second return takes caller's frame off the stack.
Two returns matches two actual calls, so is less likely to
confuse debuggers. `16' corresponds to RETURN_ADDRESS_OFFSET. */
__asm ("movl %0,16(fp)" : : "p" (&& return_again));
return;
return_again:
return;
}
#else #else
__unwind_function(void *ptr) __unwind_function(void *ptr)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment