From bf18d0315ade835286d0c788d669c49d434fb1f5 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Wed, 1 Mar 1995 20:30:14 +0000 Subject: [PATCH] Clone unwind_function for powerpc From-SVN: r9103 --- gcc/libgcc2.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index b8891dab631..39598efb038 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -2298,7 +2298,25 @@ __unwind_function(void *ptr) asm("# br"); asm("mtctr 3;bctr # b 3"); } -#endif +#endif /* rs6000 */ + +#if #machine(powerpc) +__unwind_function(void *ptr) +{ + asm("mr 31,1"); + asm("lwz 1,0(1)"); + asm("lwz 31,-4(1)"); + asm("# br"); + + asm("mr 31,1"); + asm("lwz 1,0(1)"); + /* use 31 as a scratch register to restore the link register. */ + asm("lwz 31, 8(1);mtlr 31 # l lr,8(1)"); + asm("lwz 31,-4(1)"); + asm("# br"); + asm("mtctr 3;bctr # b 3"); +} +#endif /* powerpc */ #endif /* L_eh */ #ifdef L_pure -- 2.30.2