This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, ARM] Define REVERSE_CONDITION


Now that I think I've identified all the cases in the compiler where we 
might be calling reverse_condition with a floating-point comparison, we 
can now do the following without causing regressions when generating 
cond_exec instructions from floating-point comparisons.  This also fixes 
an ICE seen in CSiBE when building on arm-linux -Os.

Bootstrapped on arm-linux, no regressions.

2004-08-29  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (REVERSE_CONDITION): Define.
	(REVERSIBLE_CC_MODE): All comparisons are now reversible.

Index: config/arm/arm.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.h,v
retrieving revision 1.254
diff -p -p -r1.254 arm.h
*** config/arm/arm.h	24 Aug 2004 20:16:36 -0000	1.254
--- config/arm/arm.h	29 Aug 2004 20:30:18 -0000
*************** extern int making_const_table;
*** 2304,2310 ****
  
  #define SELECT_CC_MODE(OP, X, Y)  arm_select_cc_mode (OP, X, Y)
  
! #define REVERSIBLE_CC_MODE(MODE) ((MODE) != CCFPEmode)
  
  #define CANONICALIZE_COMPARISON(CODE, OP0, OP1)				\
    do									\
--- 2304,2315 ----
  
  #define SELECT_CC_MODE(OP, X, Y)  arm_select_cc_mode (OP, X, Y)
  
! #define REVERSIBLE_CC_MODE(MODE) 1
! 
! #define REVERSE_CONDITION(CODE,MODE) \
!   (((MODE) == CCFPmode || (MODE) == CCFPEmode) \
!    ? reverse_condition_maybe_unordered (code) \
!    : reverse_condition (code))
  
  #define CANONICALIZE_COMPARISON(CODE, OP0, OP1)				\
    do									\

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]