diff options
author | Richard Stallman <rms@gnu.org> | 1992-10-14 01:20:21 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-10-14 01:20:21 +0000 |
commit | 2166571b8f1a95012072e563d4c112da24d11167 (patch) | |
tree | efb1de420b0e0876089d543b34c3291a8623c6e0 /gcc | |
parent | 9f61f8addd5b084ab3cb6e56812d6f4c54a8b026 (diff) | |
download | gcc-2166571b8f1a95012072e563d4c112da24d11167.zip gcc-2166571b8f1a95012072e563d4c112da24d11167.tar.gz gcc-2166571b8f1a95012072e563d4c112da24d11167.tar.bz2 |
(simplify_binary_operation): Insure that folded >> extends
the sign even if the host bootstrap compiler doesn't.
From-SVN: r2446
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cse.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -3964,6 +3964,12 @@ simplify_binary_operation (code, mode, op0, op1) return 0; val = arg0s >> arg1; + + /* Bootstrap compiler may not have sign extended the right shift. + Manually extend the sign to insure bootstrap cc matches gcc. */ + if (arg0s < 0 && arg1 > 0) + val |= ((HOST_WIDE_INT) -1) << (HOST_BITS_PER_WIDE_INT - arg1); + break; case ROTATERT: |