aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1997-11-05 01:08:08 +0000
committerJim Wilson <wilson@gcc.gnu.org>1997-11-04 17:08:08 -0800
commit3feffdfe8e13977741530c96d77ede2ceea83290 (patch)
treeade77766dea013b7cc09d103dac67381715799ce /gcc
parentab00eb0aa3dd2f42fd175d0792908f660b366e3b (diff)
downloadgcc-3feffdfe8e13977741530c96d77ede2ceea83290.zip
gcc-3feffdfe8e13977741530c96d77ede2ceea83290.tar.gz
gcc-3feffdfe8e13977741530c96d77ede2ceea83290.tar.bz2
Bug fix for v850 port.
* reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. From-SVN: r16329
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/reload.c8
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a3f4da..bd1dfa5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
Tue Nov 4 16:55:11 1997 Jim Wilson <wilson@cygnus.com>
+ * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants.
+
* mips.c (mips_expand_epilogue): Emit blockage insn before call to
save_restore_insns if no FP and GP will be restored.
diff --git a/gcc/reload.c b/gcc/reload.c
index f26cb58..c8a30d3a 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -2915,7 +2915,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
&& REGNO (operand) >= FIRST_PSEUDO_REGISTER
&& reg_renumber[REGNO (operand)] < 0))
win = 1;
- if (CONSTANT_P (operand))
+ if (CONSTANT_P (operand)
+ /* force_const_mem does not accept HIGH. */
+ && GET_CODE (operand) != HIGH)
badop = 0;
constmemok = 1;
break;
@@ -2990,7 +2992,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
&& offsettable_memref_p (reg_equiv_mem[REGNO (operand)]))
|| (reg_equiv_address[REGNO (operand)] != 0))))
win = 1;
- if (CONSTANT_P (operand) || GET_CODE (operand) == MEM)
+ /* force_const_mem does not accept HIGH. */
+ if ((CONSTANT_P (operand) && GET_CODE (operand) != HIGH)
+ || GET_CODE (operand) == MEM)
badop = 0;
constmemok = 1;
offmemok = 1;