aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-11 22:23:31 +0000
committerRichard Stallman <rms@gnu.org>1992-07-11 22:23:31 +0000
commite7a522bae602d0dab745f0c996b554ad7100b274 (patch)
treea139ae750dc624b330ca6827cebdfe4e9026a98d /gcc
parentdb7e5239390f0e259b64858ae1333ddb708e4486 (diff)
downloadgcc-e7a522bae602d0dab745f0c996b554ad7100b274.zip
gcc-e7a522bae602d0dab745f0c996b554ad7100b274.tar.gz
gcc-e7a522bae602d0dab745f0c996b554ad7100b274.tar.bz2
*** empty log message ***
From-SVN: r1560
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cse.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index a47e691..5b98cb8 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3736,9 +3736,14 @@ simplify_binary_operation (code, mode, op0, op1)
case DIV:
if (op1 == CONST1_RTX (mode))
return op0;
- else if (op0 == CONST0_RTX (mode)
- && ! side_effects_p (op1))
+
+ /* In IEEE floating point, 0/x is not always 0. */
+ if ((TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT
+ || GET_MODE_CLASS (mode) == MODE_INT)
+ && op0 == CONST0_RTX (mode)
+ && ! side_effects_p (op1))
return op0;
+
#if 0 /* Turned off till an expert says this is a safe thing to do. */
#if ! defined (REAL_IS_NOT_DOUBLE) || defined (REAL_ARITHMETIC)
/* Change division by a constant into multiplication. */