Skip to content
Snippets Groups Projects
Forked from redox-os / gcc
Source project has a limited visibility.
  • jakub's avatar
    15c73eb7
    PR other/26208 · 15c73eb7
    jakub authored
    	* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
    	(extract_cie_info): Handle S flag in augmentation string.
    	(execute_cfa_program): If context->signal_frame, execute also
    	fs->pc == context->ra instructions.
    	(uw_frame_state_for): If context->signal_frame, don't subtract one
    	from context->ra to find FDE.
    	(uw_update_context_1): Set context->signal_frame to
    	fs->signal_frame.
    	(_Unwind_GetIPInfo): New function.
    	* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
    	* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
    	of _Unwind_GetIP.
    	* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
    	* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
    	* unwind-compat.c (_Unwind_GetIPInfo): New function.
    	* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
    	* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
    	* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
    	* config/i386/linux-unwind.h (x86_fallback_frame_state,
    	x86_64_fallback_frame_state): Set fs->signal_frame.
    	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
    	(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
    	(frob_update_context): Likewise.  Workaround missing S flag in
    	Linux 2.6.12 - 2.6.16 kernel vDSOs.
    	* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
    	Remove the psw_addr + 1 hack.
    libjava/
    	* exception.cc (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
    	of _Unwind_GetIP.
    	* include/i386-signal.h (MAKE_THROW_FRAME): Change into empty macro.
    	(HANDLE_DIVIDE_OVERFLOW): Don't adjust _res->eip if falling through
    	to throw.
    	* include/x86_64-signal.h (MAKE_THROW_FRAME): Change into empty
    	macro.
    	* include/powerpc-signal.h (MAKE_THROW_FRAME): Change into empty
    	macro.
    libstdc++-v3/
    	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
    	_Unwind_GetIPInfo instead of _Unwind_GetIP.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111488 138bc75d-0d04-0410-961f-82ee72b054a4
    15c73eb7
    History
    PR other/26208
    jakub authored
    	* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
    	(extract_cie_info): Handle S flag in augmentation string.
    	(execute_cfa_program): If context->signal_frame, execute also
    	fs->pc == context->ra instructions.
    	(uw_frame_state_for): If context->signal_frame, don't subtract one
    	from context->ra to find FDE.
    	(uw_update_context_1): Set context->signal_frame to
    	fs->signal_frame.
    	(_Unwind_GetIPInfo): New function.
    	* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
    	* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
    	of _Unwind_GetIP.
    	* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
    	* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
    	* unwind-compat.c (_Unwind_GetIPInfo): New function.
    	* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
    	* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
    	* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
    	* config/i386/linux-unwind.h (x86_fallback_frame_state,
    	x86_64_fallback_frame_state): Set fs->signal_frame.
    	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
    	(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
    	(frob_update_context): Likewise.  Workaround missing S flag in
    	Linux 2.6.12 - 2.6.16 kernel vDSOs.
    	* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
    	Remove the psw_addr + 1 hack.
    libjava/
    	* exception.cc (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
    	of _Unwind_GetIP.
    	* include/i386-signal.h (MAKE_THROW_FRAME): Change into empty macro.
    	(HANDLE_DIVIDE_OVERFLOW): Don't adjust _res->eip if falling through
    	to throw.
    	* include/x86_64-signal.h (MAKE_THROW_FRAME): Change into empty
    	macro.
    	* include/powerpc-signal.h (MAKE_THROW_FRAME): Change into empty
    	macro.
    libstdc++-v3/
    	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use
    	_Unwind_GetIPInfo instead of _Unwind_GetIP.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111488 138bc75d-0d04-0410-961f-82ee72b054a4