diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2001-04-12 03:41:36 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2001-04-12 03:41:36 +0000 |
commit | 691073076ba2bdceb294db095293a0453489ab0f (patch) | |
tree | 943b9fe0140e410d24c23703edfa24a7154c671e /gcc/varasm.c | |
parent | 001643af8038ea54c0fdf32ce0cc570fafed0c2c (diff) | |
download | gcc-691073076ba2bdceb294db095293a0453489ab0f.zip gcc-691073076ba2bdceb294db095293a0453489ab0f.tar.gz gcc-691073076ba2bdceb294db095293a0453489ab0f.tar.bz2 |
expmed.c (store_bit_field): Truncate CONST_INTs.
* expmed.c (store_bit_field): Truncate CONST_INTs.
(expand_mult_highpart, expand_divmod): Likewise.
* expr.c (convert_modes, store_field): Likewise.
* integrate.c (expand_inline_function): Use promote_mode() to
determine whether to convert_modes() an argument as signed
or unsigned.
* optabs.c (expand_binop): Get CONST_INT operands
sign-extended for their appropriate modes.
* stmt.c (emit_case_nodes): Convert node values to the
appropriate mode.
(expand_end_case): Convert minval and range to the appropriate
mode.
* unroll.c (loop_iterations): Truncate abs_diff to the mode of
the iteration variable.
* varasm.c (immed_double_const): Don't require words to be
narrower than host wide ints to properly sign-extend
CONST_INTs.
From-SVN: r41285
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 8b14dc8..a803fe1 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1984,7 +1984,7 @@ immed_double_const (i0, i1, mode) represented as a 64 bit value -1, and not as 0x00000000ffffffff. The later confuses the sparc backend. */ - if (BITS_PER_WORD < HOST_BITS_PER_WIDE_INT && BITS_PER_WORD == width + if (width < HOST_BITS_PER_WIDE_INT && (i0 & ((HOST_WIDE_INT) 1 << (width - 1)))) i0 |= ((HOST_WIDE_INT) (-1) << width); |