Commit c6e84dc4 by Richard Kenner

(__unwind_function): Provide a default definition for implementations

that don't yet have a function unwinder.

From-SVN: r10524
parent b030d598
...@@ -2349,18 +2349,16 @@ __unwind_function(void *ptr) ...@@ -2349,18 +2349,16 @@ __unwind_function(void *ptr)
/* This is a test routine, as we have to dynamically probe to find out /* This is a test routine, as we have to dynamically probe to find out
what to pop for certain, this is just a guess. */ what to pop for certain, this is just a guess. */
asm("leal -16(%ebp),%esp"); asm("leal -16(%ebp),%esp");
asm("pop %eax"); /* really for popl %ebx */ asm("pop %ebx");
asm("pop %eax"); /* really for popl %esi */ asm("pop %esi");
asm("pop %eax"); /* really for popl %edi */ asm("pop %edi");
asm("movl %ebp,%esp"); asm("movl %ebp,%esp");
asm("popl %ebp"); asm("popl %ebp");
asm("movl %ecx,0(%esp)"); asm("movl %ecx,0(%esp)");
asm("ret"); asm("ret");
} }
#endif #elif #machine(rs6000)
#if #machine(rs6000)
__unwind_function(void *ptr) __unwind_function(void *ptr)
{ {
asm("mr 31,1"); asm("mr 31,1");
...@@ -2376,9 +2374,7 @@ __unwind_function(void *ptr) ...@@ -2376,9 +2374,7 @@ __unwind_function(void *ptr)
asm("# br"); asm("# br");
asm("mtctr 3;bctr # b 3"); asm("mtctr 3;bctr # b 3");
} }
#endif /* rs6000 */ #elif #machine(powerpc)
#if #machine(powerpc)
__unwind_function(void *ptr) __unwind_function(void *ptr)
{ {
asm("mr 31,1"); asm("mr 31,1");
...@@ -2394,6 +2390,11 @@ __unwind_function(void *ptr) ...@@ -2394,6 +2390,11 @@ __unwind_function(void *ptr)
asm("# br"); asm("# br");
asm("mtctr 3;bctr # b 3"); asm("mtctr 3;bctr # b 3");
} }
#else
__unwind_function(void *ptr)
{
abort ();
}
#endif /* powerpc */ #endif /* powerpc */
#endif /* L_eh */ #endif /* L_eh */
......
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