From: Monk Chiang <m...@andestech.com>

Monk Chiang  <sh.chian...@gmail.com>

ChangeLog
libgcc/
        * config/nds32/linux-unwind.h (SIGRETURN): Remove.
        (RT_SIGRETURN): Update.
        (nds32_fallback_frame_state): Update.
---
 libgcc/config/nds32/linux-unwind.h | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/libgcc/config/nds32/linux-unwind.h 
b/libgcc/config/nds32/linux-unwind.h
index 0c4df4dd..adb6f9f 100644
--- a/libgcc/config/nds32/linux-unwind.h
+++ b/libgcc/config/nds32/linux-unwind.h
@@ -42,8 +42,7 @@ struct _rt_sigframe {
   struct ucontext_t uc;
 };
 
-#define SIGRETURN 0xeb0e0a64
-#define RT_SIGRETURN 0xab150a64
+#define RT_SIGRETURN 0x8b00f044
 
 #define MD_FALLBACK_FRAME_STATE_FOR nds32_fallback_frame_state
 
@@ -74,16 +73,14 @@ nds32_fallback_frame_state (struct _Unwind_Context *context,
 
   /* Check if we are going through a signal handler.
      See arch/nds32/kernel/signal.c implementation.
-       SWI_SYS_SIGRETURN    -> (0xeb0e0a64)
-       SWI_SYS_RT_SIGRETURN -> (0xab150a64)
      FIXME: Currently we only handle little endian (EL) case.  */
-  if (pc[0] == SIGRETURN || pc[0] == RT_SIGRETURN)
+  if (pc[0] == RT_SIGRETURN)
     {
       /* Using '_sigfame' memory address to locate kernal's sigcontext.
         The sigcontext structures in arch/nds32/include/asm/sigcontext.h.  */
       struct _rt_sigframe *rt_;
       rt_ = context->cfa;
-      sc_ = &rt_->sig.uc.uc_mcontext;
+      sc_ = &rt_->uc.uc_mcontext;
     }
   else
     return _URC_END_OF_STACK;
-- 
1.8.3.1

Reply via email to