]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/final.c
final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
authorBernd Schmidt <bernds@codesourcery.com>
Mon, 2 Aug 2010 09:51:39 +0000 (09:51 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Mon, 2 Aug 2010 09:51:39 +0000 (09:51 +0000)
commit906668bb6f8c3f1eb4046dec89e9664554481eaa
tree27d233f3de06e2d1b08481a8ff99d7a0b0370973
parentf37e278a150cfdb1ead8b5e0662a27f4ee58ae89
final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.

* final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
* config/arm/arm.c (thumb1_code): New variable.
(arm_override_options): Set it.
(thumb1_final_prescan_insn): Keep track of condition code status.
(arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
jumps that depend on them.
* config/arm/arm.h (thumb1_code): Declare variable.
(struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
thumb1_cc_mode.
(CC_STATUS_INIT): New macro.
* config/arm/constraints.md (Pd): New constraint.
* config/arm/predicates.md (noov_comparison_operator): New predicate.
* config/arm/arm.md (is_thumb1): New define_attr.
(conds): Set default to "clob" when generating Thumb1 code.
(thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
code are set.  Use two-operand assembly syntax.
(thumb1_subsi3_insn): Condition codes are set.  Now a properly named
pattern.
(thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
codes are set.  Use two-operand assembly syntax.
(zero_extendhisi splitter): Remove constraints.
(thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
thumb1_movsf_insn): Set conds attribute as appropriate.
(cbranchsi4_insn): Use condition code status from struct
machine_function to determine whether the comparison can be eliminated.
Discourage the alternative using high registers.
(movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
subsi3_cbranch): Delete.
(movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
one subtract and one cbranch insn.

From-SVN: r162813
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/arm.md
gcc/config/arm/constraints.md
gcc/config/arm/predicates.md
gcc/final.c