diff options
author | Zack Weinberg <zack@codesourcery.com> | 2004-06-17 17:03:11 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2004-06-17 17:03:11 +0000 |
commit | 42eb30b557a129514aa76470115ea8bb1e35f027 (patch) | |
tree | 0a832326b76ae184884d7c3a79794d139ce1b70c /gcc/expmed.c | |
parent | 1616280e701452fe2ee16e6e9ae88bd13de68bed (diff) | |
download | gcc-42eb30b557a129514aa76470115ea8bb1e35f027.zip gcc-42eb30b557a129514aa76470115ea8bb1e35f027.tar.gz gcc-42eb30b557a129514aa76470115ea8bb1e35f027.tar.bz2 |
expmed.c (expand_mult_const): In sanity check...
* expmed.c (expand_mult_const): In sanity check, compare only
the bits of val and val_so_far that are significant in the
result mode.
From-SVN: r83294
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index fb590cd..ae76695 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2610,6 +2610,10 @@ expand_mult_const (enum machine_mode mode, rtx op0, HOST_WIDE_INT val, accum = force_operand (gen_rtx_PLUS (mode, accum, op0), target); } + /* Compare only the bits of val and val_so_far that are significant + in the result mode, to avoid sign-/zero-extension confusion. */ + val &= GET_MODE_MASK (mode); + val_so_far &= GET_MODE_MASK (mode); if (val != val_so_far) abort (); |