* optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
From-SVN: r50011
This commit is contained in:
parent
506d4ef6a1
commit
8041889f44
2 changed files with 11 additions and 4 deletions
|
@ -1,3 +1,7 @@
|
|||
Sun Feb 24 16:38:56 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
|
||||
|
||||
2002-02-24 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* cpplex.c (cpp_interpret_charconst): Get signedness or
|
||||
|
|
11
gcc/optabs.c
11
gcc/optabs.c
|
@ -186,11 +186,14 @@ widen_operand (op, mode, oldmode, unsignedp, no_extend)
|
|||
{
|
||||
rtx result;
|
||||
|
||||
/* If we must extend do so. If OP is either a constant or a SUBREG
|
||||
for a promoted object, also extend since it will be more efficient to
|
||||
do so. */
|
||||
/* If we don't have to extend and this is a constant, return it. */
|
||||
if (no_extend && GET_MODE (op) == VOIDmode)
|
||||
return op;
|
||||
|
||||
/* If we must extend do so. If OP is a SUBREG for a promoted object, also
|
||||
extend since it will be more efficient to do so unless the signedness of
|
||||
a promoted object differs from our extension. */
|
||||
if (! no_extend
|
||||
|| GET_MODE (op) == VOIDmode
|
||||
|| (GET_CODE (op) == SUBREG && SUBREG_PROMOTED_VAR_P (op)
|
||||
&& SUBREG_PROMOTED_UNSIGNED_P (op) == unsignedp))
|
||||
return convert_modes (mode, oldmode, op, unsignedp);
|
||||
|
|
Loading…
Add table
Reference in a new issue