diff options
author | Charles Hannum <mycroft@gnu.org> | 1992-07-06 20:21:37 +0000 |
---|---|---|
committer | Charles Hannum <mycroft@gnu.org> | 1992-07-06 20:21:37 +0000 |
commit | 82a5e8985ccd0adc31b6208c55658b4b44eea7b7 (patch) | |
tree | 5d7777f9c20fd941eb557c36581ad34699c01f00 | |
parent | c166a31116c7a33593aa2c54b0763d70c7dd4391 (diff) | |
download | gcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.zip gcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.tar.gz gcc-82a5e8985ccd0adc31b6208c55658b4b44eea7b7.tar.bz2 |
*** empty log message ***
From-SVN: r1477
-rw-r--r-- | gcc/cse.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -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; |