[arm] Fix DWARF2 based frame unwinding.

Paul Brook paul@codesourcery.com
Tue Aug 10 16:46:00 GMT 2004


> 2004-08-08  Paul Brook  <paul@codesourcery.com>
>
> 	* config/arm/arm-protos.h (arm_set_return_address,
> 	thumb_set_return_address): Add prototypes.
> 	* config/arm/arm.c (arm_compute_func_type,
> 	use_return_insn, arm_compute_save_reg0_reg12_mask,
> 	arm_compute_save_reg_mask, arm_output_function_prologue,
> 	arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
> 	current_function_calls_eh_return.
> 	(thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
> 	old eh code.
> 	(arm_set_return_address, thumb_set_return_address): New functions.
> 	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
> 	ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
> 	* config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
> 	(epilogue): Genrate a USE of the stackadj register.
> 	(eh_return, arm_eh_return, thumb_eh_return): New pattern.

Approved offline by Mark, with the following addition.
Applied to mainline and csl-arm-branch.

	* config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.

Index: arm.h
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/config/arm/arm.h,v
retrieving revision 1.245
diff -u -p -r1.245 arm.h
--- arm.h	14 Jul 2004 17:51:18 -0000	1.245
+++ arm.h	10 Aug 2004 15:36:38 -0000
@@ -1592,7 +1601,6 @@ enum reg_class
 #define ARM_FT_UNKNOWN		 0 /* Type has not yet been determined.  */
 #define ARM_FT_NORMAL		 1 /* Your normal, straightforward function.  */
 #define ARM_FT_INTERWORKED	 2 /* A function that supports interworking.  */
-#define ARM_FT_EXCEPTION_HANDLER 3 /* A C++ exception handler.  */
 #define ARM_FT_ISR		 4 /* An interrupt service routine.  */
 #define ARM_FT_FIQ		 5 /* A fast interrupt service routine.  */
 #define ARM_FT_EXCEPTION	 6 /* An ARM exception handler (subcase of ISR).  */



More information about the Gcc-patches mailing list