OSDN Git Service

2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
authorramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Aug 2011 11:57:33 +0000 (11:57 +0000)
committerramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Aug 2011 11:57:33 +0000 (11:57 +0000)
commit26ff80c02a07ef9aa2298db00265c9c7aa9361b9
treee91b0dcd35aaa0b0f0cafdec443fcc708f28854e
parentbf723e2d04b0fa4b9395f51e459c32948e331130
2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

PR target/50022
* config/arm/arm.c (output_move_double): Add 2 parameters
to count the number of insns emitted and whether to emit or not.
Use the flag to decide when to emit and count number of instructions
that will be emitted.
Handle case where output_move_double might be called for calculating
lengths with an invalid constant.
(arm_count_output_move_double_insns): Define.
* config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
(output_move_double): Adjust prototype.
* config/arm/vfp.md ("*movdi_vfp"): Adjust call to
output_move_double.
("*movdi_vfp_cortexa8"): Likewise and add attribute
for ce_count.
* config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
("*movdf_soft_insn"): Likewise.
* config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
("*cirrus_thumb2_movdi"): Likewise.
("*thumb2_cirrus_movdf_hard_insn"): Likewise.
("*cirrus_movdf_hard_insn"): Likewise.
* config/arm/neon.md (*neon_mov<mode> VD): Likewise.
* config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
("mov<mode>_internal VMMX"): Likewise.
* config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177759 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/config/arm/cirrus.md
gcc/config/arm/fpa.md
gcc/config/arm/iwmmxt.md
gcc/config/arm/neon.md
gcc/config/arm/vfp.md