aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2009-02-26 19:48:34 +0100
committerUros Bizjak <uros@gcc.gnu.org>2009-02-26 19:48:34 +0100
commit9dadeeb83c129bc14c56b09bb385f73b36119881 (patch)
treed3db04a04ef8f2f601ab4012f0f8f02ffcfcfd54
parent489ec4e3bd232d184845a5b71322dfe18e65529f (diff)
downloadgcc-9dadeeb83c129bc14c56b09bb385f73b36119881.zip
gcc-9dadeeb83c129bc14c56b09bb385f73b36119881.tar.gz
gcc-9dadeeb83c129bc14c56b09bb385f73b36119881.tar.bz2
alpha.h (alpha_expand_mov): Return false if force_const_mem returns NULL_RTX.
* config/alpha/alpha.h (alpha_expand_mov): Return false if force_const_mem returns NULL_RTX. From-SVN: r144450
-rw-r--r--gcc/ChangeLog21
-rw-r--r--gcc/config/alpha/alpha.c16
2 files changed, 23 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27fc748..9aef9cb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.h (alpha_expand_mov): Return false if
+ force_const_mem returns NULL_RTX.
+
2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/39241
@@ -36,8 +41,7 @@
2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi (Link Options): Document an easier way to pass
- options that take arguments to the GNU linker using -Xlinker and
- -Wl.
+ options that take arguments to the GNU linker using -Xlinker and -Wl.
2009-02-24 Steve Ellcey <sje@cup.hp.com>
@@ -74,20 +78,21 @@
2009-02-23 Jan Hubicka <jh@suse.cz>
PR c/12245
- * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when resizing.
+ * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
+ resizing.
2009-02-23 Jan Hubicka <jh@suse.cz>
- PR tree-optimization/37709
- * tree.c (block_ultimate_origin): Move here from dwarf2out.
- * tree.h (block_ultimate_origin): Declare.
- * dwarf2out.c (block_ultimate_origin): Move to tree.c
+ PR tree-optimization/37709
+ * tree.c (block_ultimate_origin): Move here from dwarf2out.
+ * tree.h (block_ultimate_origin): Declare.
+ * dwarf2out.c (block_ultimate_origin): Move to tree.c
* tree-ssa-live.c (remove_unused_scope_block_p):
Eliminate blocks containig no instructions nor live variables nor
nested blocks.
(dump_scope_block): New function.
(remove_unused_locals): Enable removal of dead blocks by default;
- enable dumping at TDF_DETAILS.
+ enable dumping at TDF_DETAILS.
2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 7bafb0a..0675916 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -2124,6 +2124,8 @@ alpha_split_const_mov (enum machine_mode mode, rtx *operands)
bool
alpha_expand_mov (enum machine_mode mode, rtx *operands)
{
+ rtx tmp;
+
/* If the output is not a register, the input must be. */
if (GET_CODE (operands[0]) == MEM
&& ! reg_or_0_operand (operands[1], mode))
@@ -2132,8 +2134,6 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands)
/* Allow legitimize_address to perform some simplifications. */
if (mode == Pmode && symbolic_operand (operands[1], mode))
{
- rtx tmp;
-
tmp = alpha_legitimize_address (operands[1], operands[0], mode);
if (tmp)
{
@@ -2158,14 +2158,18 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands)
}
/* Otherwise we've nothing left but to drop the thing to memory. */
- operands[1] = force_const_mem (mode, operands[1]);
+ tmp = force_const_mem (mode, operands[1]);
+
+ if (tmp == NULL_RTX)
+ return false;
+
if (reload_in_progress)
{
- emit_move_insn (operands[0], XEXP (operands[1], 0));
- operands[1] = replace_equiv_address (operands[1], operands[0]);
+ emit_move_insn (operands[0], XEXP (tmp, 0));
+ operands[1] = replace_equiv_address (tmp, operands[0]);
}
else
- operands[1] = validize_mem (operands[1]);
+ operands[1] = validize_mem (tmp);
return false;
}