mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 22:03:57 +08:00
Update x32 __NR_rt_sigreturn system call number.
2011-08-02 H.J. Lu <hongjiu.lu@intel.com> * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New. (x86_64_fallback_frame_state): Use RT_SIGRETURN_SYSCALL and long long to check rt_sigreturn syscall. From-SVN: r177229
This commit is contained in:
parent
16c57fe280
commit
40f2f11f1f
@ -1,3 +1,9 @@
|
||||
2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New.
|
||||
(x86_64_fallback_frame_state): Use RT_SIGRETURN_SYSCALL and
|
||||
long long to check rt_sigreturn syscall.
|
||||
|
||||
2011-08-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/rs6000/linux-unwind.h (frob_update_context <__powerpc64__>):
|
||||
|
@ -44,9 +44,14 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
|
||||
struct sigcontext *sc;
|
||||
long new_cfa;
|
||||
|
||||
/* movq __NR_rt_sigreturn, %rax ; syscall */
|
||||
/* movq $__NR_rt_sigreturn, %rax ; syscall. */
|
||||
#ifdef __LP64__
|
||||
#define RT_SIGRETURN_SYSCALL 0x050f0000000fc0c7ULL
|
||||
#else
|
||||
#define RT_SIGRETURN_SYSCALL 0x050f40002006c0c7ULL
|
||||
#endif
|
||||
if (*(unsigned char *)(pc+0) == 0x48
|
||||
&& *(unsigned long *)(pc+1) == 0x050f0000000fc0c7)
|
||||
&& *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
|
||||
{
|
||||
struct ucontext *uc_ = context->cfa;
|
||||
/* The void * cast is necessary to avoid an aliasing warning.
|
||||
|
Loading…
Reference in New Issue
Block a user