From c6e84dc4845c7da5bf2d477a531a23b9dee5b907 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 26 Oct 1995 19:24:58 -0400 Subject: (__unwind_function): Provide a default definition for implementations that don't yet have a function unwinder. From-SVN: r10524 --- gcc/libgcc2.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'gcc') diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index ab13f44..d266a4a 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -2349,18 +2349,16 @@ __unwind_function(void *ptr) /* This is a test routine, as we have to dynamically probe to find out what to pop for certain, this is just a guess. */ asm("leal -16(%ebp),%esp"); - asm("pop %eax"); /* really for popl %ebx */ - asm("pop %eax"); /* really for popl %esi */ - asm("pop %eax"); /* really for popl %edi */ + asm("pop %ebx"); + asm("pop %esi"); + asm("pop %edi"); asm("movl %ebp,%esp"); asm("popl %ebp"); asm("movl %ecx,0(%esp)"); asm("ret"); } -#endif - -#if #machine(rs6000) +#elif #machine(rs6000) __unwind_function(void *ptr) { asm("mr 31,1"); @@ -2376,9 +2374,7 @@ __unwind_function(void *ptr) asm("# br"); asm("mtctr 3;bctr # b 3"); } -#endif /* rs6000 */ - -#if #machine(powerpc) +#elif #machine(powerpc) __unwind_function(void *ptr) { asm("mr 31,1"); @@ -2394,6 +2390,11 @@ __unwind_function(void *ptr) asm("# br"); asm("mtctr 3;bctr # b 3"); } +#else +__unwind_function(void *ptr) +{ + abort (); +} #endif /* powerpc */ #endif /* L_eh */ -- cgit v1.1