aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1997-10-28 14:40:01 -0800
committerRichard Henderson <rth@gcc.gnu.org>1997-10-28 14:40:01 -0800
commit42f4929d5a0ef969f8657e463c52a2f6af3758e8 (patch)
tree12de5b34cc7c374615572b9dbe055d411d6983c9 /gcc
parent0841747819935a6f6def03b9c5f335e5755b7dc2 (diff)
downloadgcc-42f4929d5a0ef969f8657e463c52a2f6af3758e8.zip
gcc-42f4929d5a0ef969f8657e463c52a2f6af3758e8.tar.gz
gcc-42f4929d5a0ef969f8657e463c52a2f6af3758e8.tar.bz2
alpha.md (reload_inqi): Check for MEM before strict_memory_address_p...
* alpha.md (reload_inqi): Check for MEM before strict_memory_address_p, since any_memory_operand() allows pseudos during reload. (reload_inhi, reload_outqi, reload_outhi): Likewise. From-SVN: r16219
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/alpha/alpha.md14
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0582060..f6a96bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Tue Oct 28 14:36:45 1997 Richard Henderson <rth@cygnus.com>
+
+ * alpha.md (reload_inqi): Check for MEM before strict_memory_address_p,
+ since any_memory_operand() allows pseudos during reload.
+ (reload_inhi, reload_outqi, reload_outhi): Likewise.
+
Tue Oct 28 11:53:14 1997 Jim Wilson <wilson@cygnus.com>
* m68k.md (btst patterns): Add 5200 support.
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index 221d5d9..570ab91 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -4291,7 +4291,8 @@
? REGNO (operands[2]) + 1 : REGNO (operands[2]));
/* We must be careful to make sure that the new rtx won't need reloading. */
- if (! strict_memory_address_p (DImode, XEXP (operands[1], 0)))
+ if (GET_CODE (operands[1]) == MEM &&
+ ! strict_memory_address_p (DImode, XEXP (operands[1], 0)))
{
tmp = gen_rtx (REG, Pmode, REGNO (operands[0]));
emit_insn (gen_move_insn (tmp, XEXP (operands[1], 0)));
@@ -4324,7 +4325,8 @@
? REGNO (operands[2]) + 1 : REGNO (operands[2]));
/* We must be careful to make sure that the new rtx won't need reloading. */
- if (!strict_memory_address_p (DImode, XEXP (operands[1], 0)))
+ if (GET_CODE (operands[1]) == MEM &&
+ ! strict_memory_address_p (DImode, XEXP (operands[1], 0)))
{
tmp = gen_rtx (REG, Pmode, REGNO (operands[0]));
emit_insn (gen_move_insn (tmp, XEXP (operands[1], 0)));
@@ -4348,7 +4350,9 @@
"
{ extern rtx get_unaligned_address ();
- if (!strict_memory_address_p (DImode, XEXP (operands[0], 0)))
+ /* Note that any_memory_operand allows pseudos during reload. */
+ if (GET_CODE (operands[0]) == MEM &&
+ ! strict_memory_address_p (DImode, XEXP (operands[0], 0)))
{
rtx scratch1 = gen_rtx (REG, DImode, REGNO (operands[2]));
emit_insn (gen_move_insn (scratch1, XEXP (operands[0], 0)));
@@ -4394,7 +4398,9 @@
"
{ extern rtx get_unaligned_address ();
- if (!strict_memory_address_p (DImode, XEXP (operands[0], 0)))
+ /* Note that any_memory_operand allows pseudos during reload. */
+ if (GET_CODE (operands[0]) == MEM &&
+ ! strict_memory_address_p (DImode, XEXP (operands[0], 0)))
{
rtx scratch1 = gen_rtx (REG, DImode, REGNO (operands[2]));
emit_insn (gen_move_insn (scratch1, XEXP (operands[0], 0)));