diff options
author | Nick Clifton <nickc@redhat.com> | 2010-06-30 08:50:14 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2010-06-30 08:50:14 +0000 |
commit | aea8fc973762254dfd518d202975bc043aba4ba9 (patch) | |
tree | 01f9bb4c0964cfdc72ea8fd3a7fc97fe6aa30df2 /gcc/config/rx/rx-modes.def | |
parent | 6662d794044f9124db635ba8acaa82c9483a3b33 (diff) | |
download | gcc-aea8fc973762254dfd518d202975bc043aba4ba9.zip gcc-aea8fc973762254dfd518d202975bc043aba4ba9.tar.gz gcc-aea8fc973762254dfd518d202975bc043aba4ba9.tar.bz2 |
rx-modes.def: New file.
* config/rx/rx-modes.def: New file.
* config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
(CC_REGNUM): Define.
(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
register.
(CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
(SELECT_CC_MODE): Define.
* config/rx/rx.md (CC_REG): Define. Update all patterns to use
(reg:CC CC_REG) instead of (cc0).
(attr "cc"): Delete.
(cbranchsi4): Do not split compare and branch here. Instead move
it to...
(cbranchsi4_<code>): ... here. New patterns.
(cmpsi): Call rx-compare_redundant to find out if it is necessary
to emit the compare instruction.
* config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
cc_status flags.
(rx_get_stack_layout): Iterate up to before CC_REGNUM not
FIRST_PSEUDO_REGNUM.
(rx_expand_prologue, rx_expand_epilogue): Likewise.
(rx_notice_update_cc): Delete.
(rx_cc_modes_compatible): New function.
(flags_needed_for_conditional): New function.
(flags_from_mode): New function.
(rx_compare_redundant): New function - scans backwards through
insn list to find out if condition flags are already set
correctly.
(TARGET_CC_MODES_COMPATIBLE): Define.
* config/rx/rx-protos.h (rx_compare_redundant): Prototype.
* config/rx/rx.h (BRANCH_COST): Define.
(REGISTER_MOVE_COST): Define.
* config/rx/predicates (rx_source_operand): Allow all constant
types.
* config/rx/rx.md (addsi3): Add alternative for swapped operands.
(tstsi4): New pattern.
* config/rx/rx.c (rx_memory_move_cost): Define.
(TARGET_MEMORY_MOVE_COST): Define.
From-SVN: r161592
Diffstat (limited to 'gcc/config/rx/rx-modes.def')
-rw-r--r-- | gcc/config/rx/rx-modes.def | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/config/rx/rx-modes.def b/gcc/config/rx/rx-modes.def new file mode 100644 index 0000000..5936b67 --- /dev/null +++ b/gcc/config/rx/rx-modes.def @@ -0,0 +1,26 @@ +/* Definitions of target machine for GNU compiler, for ARM. + Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc. + Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) + and Martin Simmons (@harleqn.co.uk). + More major hacks by Richard Earnshaw (rearnsha@arm.com) + Minor hacks by Nick Clifton (nickc@cygnus.com) + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ + +CC_MODE (CC_ZS); +CC_MODE (CC_ZSO); +CC_MODE (CC_ZSC); |