summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-18 07:45:15 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-18 07:45:15 +0000
commitcb8e5f7950ab7dc5b59acd99a1fbe541a797ff0c (patch)
tree8a1a9ac4080e909b10405adcdec0cceb176bcfb0
parentffe23fb673c7f0713c215fcefdd029fa7bed6909 (diff)
downloadgcc-cb8e5f7950ab7dc5b59acd99a1fbe541a797ff0c.tar.gz
* pa.md (reload_peepholes): Don't allow addresses with side
effects for the memory operand. Geez, how long have we been screwing this up... git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15536 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.md2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1d12a8f6fe5..c199435e7ae 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com)
+
+ * pa.md (reload_peepholes): Don't allow addresses with side
+ effects for the memory operand.
+
Wed Sep 17 18:19:53 1997 Jason Merrill <jason@yorick.cygnus.com>
* libgcc2.c (find_exception_handler): Subtract one from our PC when
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 1844a6ea844..138f675af00 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -4846,6 +4846,7 @@
&& GET_MODE (operands[0]) == DFmode
&& GET_CODE (operands[1]) == REG
&& GET_CODE (operands[2]) == REG
+ && ! side_effects_p (XEXP (operands[0], 0))
&& REGNO_REG_CLASS (REGNO (operands[1]))
== REGNO_REG_CLASS (REGNO (operands[2]))"
"*
@@ -4885,6 +4886,7 @@
&& GET_MODE (operands[0]) == DFmode
&& GET_CODE (operands[0]) == REG
&& GET_CODE (operands[2]) == REG
+ && ! side_effects_p (XEXP (operands[1], 0))
&& REGNO_REG_CLASS (REGNO (operands[0]))
== REGNO_REG_CLASS (REGNO (operands[2]))"
"*