arm-modes.def (CC_Nmode): New condition code mode.
authorRichard Earnshaw <rearnsha@arm.com>
Fri, 17 Oct 2003 10:58:17 +0000 (10:58 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Fri, 17 Oct 2003 10:58:17 +0000 (10:58 +0000)
commitdefc0463c448ba444136bee65ee482644eb7fd66
treed402bff7289bb069a9367b802d647c14c1d1d00f
parent38b2a60531f0da9ee440c82248774bf53596edf0
arm-modes.def (CC_Nmode): New condition code mode.

* arm-modes.def (CC_Nmode): New condition code mode.
* arm.c (thumb_condition_code): Delete.
(arm_select_cc_mode): Handle single-bit test for Thumb.
(arm_print_operand, cases 'd' and 'D'): Don't special case the
condition code logic for Thumb.
(get_arm_condition_code): Handle CC_Nmode.
(thumb_cbrch_target_operand): New function.
* arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand.
* arm-protos.h (thumb_cbrch_target_operand): Add prototype.
* arm.md: Add Thumb split patterns for zero_extract and
sign_extract.
(tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch)
(orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch)
(xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch)
(subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns.
(cbranchne_decr1): Re-work to use CC_Nmode.

* arm.c (thumb_expand_epilogue): Add clobbers of registers restored
by the return instruction.  Add a use of the link register if it
wasn't stored.

From-SVN: r72595
gcc/ChangeLog
gcc/config/arm/arm-modes.def
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/arm.md