Commit a6acbe15 by Richard Stallman

*** empty log message ***

From-SVN: r999
parent b8168f0d
...@@ -2948,12 +2948,12 @@ simplify_unary_operation (code, mode, op, op_mode) ...@@ -2948,12 +2948,12 @@ simplify_unary_operation (code, mode, op, op_mode)
return gen_rtx (CONST_INT, VOIDmode, val); return gen_rtx (CONST_INT, VOIDmode, val);
} }
#endif #endif
else if (GET_MODE_CLASS (mode) == MODE_INT /* This was formerly used only for non-IEEE float.
|| TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT) eggert@twinsun.com says it is safe for IEEE also. */
else
{ {
/* There are some simplifications we can do even if the operands /* There are some simplifications we can do even if the operands
aren't constant, but they don't apply to floating-point aren't constant. */
unless not IEEE. */
switch (code) switch (code)
{ {
case NEG: case NEG:
...@@ -2979,8 +2979,6 @@ simplify_unary_operation (code, mode, op, op_mode) ...@@ -2979,8 +2979,6 @@ simplify_unary_operation (code, mode, op, op_mode)
return 0; return 0;
} }
else
return 0;
} }
/* Simplify a binary operation CODE with result mode MODE, operating on OP0 /* Simplify a binary operation CODE with result mode MODE, operating on OP0
......
...@@ -3007,15 +3007,17 @@ fold (expr) ...@@ -3007,15 +3007,17 @@ fold (expr)
/* Except with IEEE floating point, x-0 equals x. */ /* Except with IEEE floating point, x-0 equals x. */
if (real_zerop (arg1)) if (real_zerop (arg1))
return non_lvalue (convert (type, arg0)); return non_lvalue (convert (type, arg0));
}
/* Fold &x - &x. This can happen from &x.foo - &x. /* Fold &x - &x. This can happen from &x.foo - &x.
Note that can't be done for certain floats even in non-IEEE formats. This is unsafe for certain floats even in non-IEEE formats.
In IEEE, it is unsafe because it does wrong for NaNs.
Also note that operand_equal_p is always false is an operand Also note that operand_equal_p is always false is an operand
is volatile. */ is volatile. */
if (operand_equal_p (arg0, arg1, if (operand_equal_p (arg0, arg1,
TREE_CODE (type) == REAL_TYPE)) TREE_CODE (type) == REAL_TYPE))
return convert (type, integer_zero_node); return convert (type, integer_zero_node);
}
goto associate; goto associate;
case MULT_EXPR: case MULT_EXPR:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment