[NDS32] Refine force unwind. Linux kernel only uses RT_SIGRETURN.
libgcc/ * config/nds32/linux-unwind.h (SIGRETURN): Remove. (RT_SIGRETURN): Update. (nds32_fallback_frame_state): Update. From-SVN: r270363
This commit is contained in:
parent
3da4a68a3e
commit
887e182f05
@ -1,3 +1,9 @@
|
|||||||
|
2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
|
||||||
|
|
||||||
|
* config/nds32/linux-unwind.h (SIGRETURN): Remove.
|
||||||
|
(RT_SIGRETURN): Update.
|
||||||
|
(nds32_fallback_frame_state): Update.
|
||||||
|
|
||||||
2019-02-21 Martin Sebor <msebor@redhat.com>
|
2019-02-21 Martin Sebor <msebor@redhat.com>
|
||||||
|
|
||||||
* libgcc2.h (__clear_cache): Correct signature.
|
* libgcc2.h (__clear_cache): Correct signature.
|
||||||
|
@ -42,8 +42,7 @@ struct _rt_sigframe {
|
|||||||
struct ucontext_t uc;
|
struct ucontext_t uc;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SIGRETURN 0xeb0e0a64
|
#define RT_SIGRETURN 0x8b00f044
|
||||||
#define RT_SIGRETURN 0xab150a64
|
|
||||||
|
|
||||||
#define MD_FALLBACK_FRAME_STATE_FOR nds32_fallback_frame_state
|
#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.
|
/* Check if we are going through a signal handler.
|
||||||
See arch/nds32/kernel/signal.c implementation.
|
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. */
|
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.
|
/* Using '_sigfame' memory address to locate kernal's sigcontext.
|
||||||
The sigcontext structures in arch/nds32/include/asm/sigcontext.h. */
|
The sigcontext structures in arch/nds32/include/asm/sigcontext.h. */
|
||||||
struct _rt_sigframe *rt_;
|
struct _rt_sigframe *rt_;
|
||||||
rt_ = context->cfa;
|
rt_ = context->cfa;
|
||||||
sc_ = &rt_->sig.uc.uc_mcontext;
|
sc_ = &rt_->uc.uc_mcontext;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return _URC_END_OF_STACK;
|
return _URC_END_OF_STACK;
|
||||||
|
Loading…
Reference in New Issue
Block a user