Skip to content
Snippets Groups Projects
  • Ramana Radhakrishnan's avatar
    48528842
    re PR target/89093 (C++ exception handling clobbers d8 VFP register) · 48528842
    Ramana Radhakrishnan authored
    
    	PR target/89093
    	* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
    	if used with general-regs-only.
    	(arm_conditional_register_usage): Don't add non-general regs if
    	general-regs-only.
    	(arm_valid_target_attribute_rec): Handle general-regs-only.
    	* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
    	general-regs-only.
    	(TARGET_HARD_FLOAT_SUB): Define.
    	(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
    	(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
    	(TARGET_REALLY_IWMMXT2): Likewise.
    	* config/arm/arm.opt: Add -mgeneral-regs-only.
    	* doc/extend.texi: Document ARM general-regs-only target.
    	* doc/invoke.texi: Document ARM -mgeneral-regs-only.
    libgcc/
    	* config/arm/pr-support.c: Add #pragma GCC target("general-regs-only").
    	* config/arm/unwind-arm.c: Likewise.
    	* unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target
    	attribute for ARM.
    libobjc/
    	* exception.c (PERSONALITY_FUNCTION): Add general-regs-only target
    	attribute for ARM.
    libphobos/
    	* libdruntime/gcc/deh.d: Import gcc.attribute.
    	(personality_fn_attributes): New enum.
    	(scanLSDA, CONTINUE_UNWINDING, gdc_personality, __gdc_personality):
    	Add @personality_fn_attributes.
    libstdc++-v3/
    	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
    	general-regs-only target attribute for ARM.
    
    Co-Authored-By: default avatarBernd Edlinger <bernd.edlinger@hotmail.de>
    Co-Authored-By: default avatarJakub Jelinek <jakub@redhat.com>
    
    From-SVN: r270504
    48528842
    History
    re PR target/89093 (C++ exception handling clobbers d8 VFP register)
    Ramana Radhakrishnan authored
    
    	PR target/89093
    	* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
    	if used with general-regs-only.
    	(arm_conditional_register_usage): Don't add non-general regs if
    	general-regs-only.
    	(arm_valid_target_attribute_rec): Handle general-regs-only.
    	* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
    	general-regs-only.
    	(TARGET_HARD_FLOAT_SUB): Define.
    	(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
    	(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
    	(TARGET_REALLY_IWMMXT2): Likewise.
    	* config/arm/arm.opt: Add -mgeneral-regs-only.
    	* doc/extend.texi: Document ARM general-regs-only target.
    	* doc/invoke.texi: Document ARM -mgeneral-regs-only.
    libgcc/
    	* config/arm/pr-support.c: Add #pragma GCC target("general-regs-only").
    	* config/arm/unwind-arm.c: Likewise.
    	* unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target
    	attribute for ARM.
    libobjc/
    	* exception.c (PERSONALITY_FUNCTION): Add general-regs-only target
    	attribute for ARM.
    libphobos/
    	* libdruntime/gcc/deh.d: Import gcc.attribute.
    	(personality_fn_attributes): New enum.
    	(scanLSDA, CONTINUE_UNWINDING, gdc_personality, __gdc_personality):
    	Add @personality_fn_attributes.
    libstdc++-v3/
    	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
    	general-regs-only target attribute for ARM.
    
    Co-Authored-By: default avatarBernd Edlinger <bernd.edlinger@hotmail.de>
    Co-Authored-By: default avatarJakub Jelinek <jakub@redhat.com>
    
    From-SVN: r270504