aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1998-06-19 01:03:32 +0000
committerJeff Law <law@gcc.gnu.org>1998-06-18 19:03:32 -0600
commitbb173adecddb43b1fc98337168979d727ed8ab83 (patch)
treea9a66f7922a5e316117252683983a7d1cac1dabe
parente472bcefabb0ddec6afe20062604103521ea6958 (diff)
downloadgcc-bb173adecddb43b1fc98337168979d727ed8ab83.zip
gcc-bb173adecddb43b1fc98337168979d727ed8ab83.tar.gz
gcc-bb173adecddb43b1fc98337168979d727ed8ab83.tar.bz2
reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't consider a MEM in FP mode as equal.
* reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't consider a MEM in FP mode as equal. Stolen from gcc2 sources. Fixes problem from Debian folks. From-SVN: r20571
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index faa14ec..2aca4aa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jun 19 02:00:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't
+ consider a MEM in FP mode as equal.
+
Fri Jun 19 01:02:17 1998 Jeffrey A Law (law@cygnus.com)
* c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 2373f88..2220392 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -8352,6 +8352,8 @@ reload_cse_regno_equal_p (regno, val, mode)
for (x = reg_values[regno]; x; x = XEXP (x, 1))
if (XEXP (x, 0) != 0
&& rtx_equal_p (XEXP (x, 0), val)
+ && (! flag_float_store || GET_CODE (XEXP (x, 0)) != MEM
+ || GET_MODE_CLASS (GET_MODE (x)) != MODE_FLOAT)
&& (GET_CODE (val) != CONST_INT
|| mode == GET_MODE (x)
|| (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (x))