mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 10:20:39 +08:00
expr.c (expand_expr): STRIP_NOPS before checking against MAX_INTEGER_COMPUTATION_MODE
* expr.c (expand_expr): STRIP_NOPS before checking against MAX_INTEGER_COMPUTATION_MODE (check_max_integer_computation_mode): Likewise. From-SVN: r27715
This commit is contained in:
parent
49208cca8d
commit
5f652c070f
@ -1,3 +1,9 @@
|
||||
Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* expr.c (expand_expr): STRIP_NOPS before checking against
|
||||
MAX_INTEGER_COMPUTATION_MODE
|
||||
(check_max_integer_computation_mode): Likewise.
|
||||
|
||||
Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
|
||||
|
14
gcc/expr.c
14
gcc/expr.c
@ -5397,9 +5397,13 @@ void
|
||||
check_max_integer_computation_mode (exp)
|
||||
tree exp;
|
||||
{
|
||||
enum tree_code code = TREE_CODE (exp);
|
||||
enum tree_code code;
|
||||
enum machine_mode mode;
|
||||
|
||||
/* Strip any NOPs that don't change the mode. */
|
||||
STRIP_NOPS (exp);
|
||||
code = TREE_CODE (exp);
|
||||
|
||||
/* We must allow conversions of constants to MAX_INTEGER_COMPUTATION_MODE. */
|
||||
if (code == NOP_EXPR
|
||||
&& TREE_CODE (TREE_OPERAND (exp, 0)) == INTEGER_CST)
|
||||
@ -5578,7 +5582,12 @@ expand_expr (exp, target, tmode, modifier)
|
||||
}
|
||||
|
||||
#ifdef MAX_INTEGER_COMPUTATION_MODE
|
||||
/* Only check stuff here if the mode we want is different from the mode
|
||||
of the expression; if it's the same, check_max_integer_computiation_mode
|
||||
will handle it. Do we really need to check this stuff at all? */
|
||||
|
||||
if (target
|
||||
&& GET_MODE (target) != mode
|
||||
&& TREE_CODE (exp) != INTEGER_CST
|
||||
&& TREE_CODE (exp) != PARM_DECL
|
||||
&& TREE_CODE (exp) != ARRAY_REF
|
||||
@ -5595,7 +5604,8 @@ expand_expr (exp, target, tmode, modifier)
|
||||
fatal ("unsupported wide integer operation");
|
||||
}
|
||||
|
||||
if (TREE_CODE (exp) != INTEGER_CST
|
||||
if (tmode != mode
|
||||
&& TREE_CODE (exp) != INTEGER_CST
|
||||
&& TREE_CODE (exp) != PARM_DECL
|
||||
&& TREE_CODE (exp) != ARRAY_REF
|
||||
&& TREE_CODE (exp) != COMPONENT_REF
|
||||
|
Loading…
x
Reference in New Issue
Block a user