From bb173adecddb43b1fc98337168979d727ed8ab83 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 19 Jun 1998 01:03:32 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/reload1.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faa14ec939e..2aca4aafdf7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 19 02:00:19 1998 Richard Kenner + + * 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 2373f8864f1..22203929b1d 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))