aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Hannum <mycroft@gnu.org>1992-07-06 20:21:37 +0000
committerCharles Hannum <mycroft@gnu.org>1992-07-06 20:21:37 +0000
commit82a5e8985ccd0adc31b6208c55658b4b44eea7b7 (patch)
tree5d7777f9c20fd941eb557c36581ad34699c01f00
parentc166a31116c7a33593aa2c54b0763d70c7dd4391 (diff)
downloadgcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.zip
gcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.tar.gz
gcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.tar.bz2
*** empty log message ***
From-SVN: r1477
-rw-r--r--gcc/cse.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index dbb2f22..a47e691 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -2895,7 +2895,7 @@ simplify_unary_operation (code, mode, op, op_mode)
case ZERO_EXTEND:
if (op_mode == VOIDmode)
op_mode = mode;
- if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_INT)
+ if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_WIDE_INT)
{
/* If we were really extending the mode,
we would have to distinguish between zero-extension
@@ -2904,8 +2904,8 @@ simplify_unary_operation (code, mode, op, op_mode)
abort ();
val = arg0;
}
- else if (GET_MODE_BITSIZE (op_mode) < HOST_BITS_PER_INT)
- val = arg0 & ~((-1) << GET_MODE_BITSIZE (op_mode));
+ else if (GET_MODE_BITSIZE (op_mode) < HOST_BITS_PER_WIDE_INT)
+ val = arg0 & ~((HOST_WIDE_INT) (-1) << GET_MODE_BITSIZE (op_mode));
else
return 0;
break;
@@ -2913,7 +2913,7 @@ simplify_unary_operation (code, mode, op, op_mode)
case SIGN_EXTEND:
if (op_mode == VOIDmode)
op_mode = mode;
- if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_INT)
+ if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_WIDE_INT)
{
/* If we were really extending the mode,
we would have to distinguish between zero-extension
@@ -2924,9 +2924,11 @@ simplify_unary_operation (code, mode, op, op_mode)
}
else if (GET_MODE_BITSIZE (op_mode) < HOST_BITS_PER_INT)
{
- val = arg0 & ~((-1) << GET_MODE_BITSIZE (op_mode));
- if (val & (1 << (GET_MODE_BITSIZE (op_mode) - 1)))
- val -= 1 << GET_MODE_BITSIZE (op_mode);
+ val
+ = arg0 & ~((HOST_WIDE_INT) (-1) << GET_MODE_BITSIZE (op_mode));
+ if (val
+ & ((HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (op_mode) - 1)))
+ val -= (HOST_WIDE_INT) 1 << GET_MODE_BITSIZE (op_mode);
}
else
return 0;