Skip to content
Snippets Groups Projects
  • Ulrich Weigand's avatar
    7b0518e3
    targhooks.h (struct gcc_target): New member unwind_word_mode. · 7b0518e3
    Ulrich Weigand authored
    	* targhooks.h (struct gcc_target): New member unwind_word_mode.
    	(default_unwind_word_mode): Add prototype.
    	* targhooks.c (default_unwind_word_mode): New function.
    	(default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
    	instead of word_mode.
    	* target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
    	(TARGET_INITIALIZER): Use it.
    
    	* c-common.c (handle_mode_attribute): Support "unwind_word"
    	mode attribute.
    	* unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
    
    	* except.c (init_eh): Use targetm.unwind_word_mode () instead of
    	word_mode to access SjLj_Function_Context member "data".
    	(sjlj_emit_dispatch_table): Likewise.  Also, perform type
    	conversion from targetm.eh_return_filter_mode () to
    	targetm.unwind_word_mode () if they differ.
    
    	* builtin-types.def (BT_UNWINDWORD): New primitive type.
    	(BT_FN_UNWINDWORD_PTR): New function type.
    	(BT_FN_WORD_PTR): Remove.
    	* builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
    	* except.c (expand_builtin_extend_pointer): Convert pointer to
    	targetm.unwind_word_mode () instead of word_mode.
    
    	* config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
    	* config/spu/spu.c (spu_eh_return_filter_mode): Remove.
    	(spu_unwind_word_mode): New function.
    	(TARGET_EH_RETURN_FILTER_MODE): Do not define.
    	(TARGET_UNWIND_WORD_MODE): Define.
    	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
    
    From-SVN: r136912
    7b0518e3
    History
    targhooks.h (struct gcc_target): New member unwind_word_mode.
    Ulrich Weigand authored
    	* targhooks.h (struct gcc_target): New member unwind_word_mode.
    	(default_unwind_word_mode): Add prototype.
    	* targhooks.c (default_unwind_word_mode): New function.
    	(default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
    	instead of word_mode.
    	* target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
    	(TARGET_INITIALIZER): Use it.
    
    	* c-common.c (handle_mode_attribute): Support "unwind_word"
    	mode attribute.
    	* unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
    
    	* except.c (init_eh): Use targetm.unwind_word_mode () instead of
    	word_mode to access SjLj_Function_Context member "data".
    	(sjlj_emit_dispatch_table): Likewise.  Also, perform type
    	conversion from targetm.eh_return_filter_mode () to
    	targetm.unwind_word_mode () if they differ.
    
    	* builtin-types.def (BT_UNWINDWORD): New primitive type.
    	(BT_FN_UNWINDWORD_PTR): New function type.
    	(BT_FN_WORD_PTR): Remove.
    	* builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
    	* except.c (expand_builtin_extend_pointer): Convert pointer to
    	targetm.unwind_word_mode () instead of word_mode.
    
    	* config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
    	* config/spu/spu.c (spu_eh_return_filter_mode): Remove.
    	(spu_unwind_word_mode): New function.
    	(TARGET_EH_RETURN_FILTER_MODE): Do not define.
    	(TARGET_UNWIND_WORD_MODE): Define.
    	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
    
    From-SVN: r136912