summaryrefslogtreecommitdiff
path: root/gcc/config/arm/iwmmxt.md
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-08-15 11:57:33 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2011-08-15 11:57:33 +0000
commit3598da80668da2ebf4098529b8f298800997776c (patch)
treee91b0dcd35aaa0b0f0cafdec443fcc708f28854e /gcc/config/arm/iwmmxt.md
parente7d4e45e2e4f102eb479a56ee73b312c70a4f91b (diff)
downloadgcc-3598da80668da2ebf4098529b8f298800997776c.tar.gz
re PR target/50022 ("incorrect condition in IT block" when building mozilla code base for ARM)
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. From-SVN: r177759
Diffstat (limited to 'gcc/config/arm/iwmmxt.md')
-rw-r--r--gcc/config/arm/iwmmxt.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md
index 7f13ae49b9b..bc0b80defc9 100644
--- a/gcc/config/arm/iwmmxt.md
+++ b/gcc/config/arm/iwmmxt.md
@@ -76,7 +76,7 @@
switch (which_alternative)
{
default:
- return output_move_double (operands);
+ return output_move_double (operands, true, NULL);
case 0:
return \"#\";
case 3:
@@ -173,7 +173,7 @@
case 3: return \"tmrrc%?\\t%Q0, %R0, %1\";
case 4: return \"tmcrr%?\\t%0, %Q1, %R1\";
case 5: return \"#\";
- default: return output_move_double (operands);
+ default: return output_move_double (operands, true, NULL);
}"
[(set_attr "predicable" "yes")
(set_attr "length" "4, 4, 4,4,4,8, 8,8")