aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2000-07-30 18:40:12 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2000-07-30 18:40:12 +0000
commite8dc6d50748c9fa9b1f572e1b0a39c6ac1d222bf (patch)
treea32f660f85c17a3f80a9ad286cdd168f578b8db7
parent49219895115ee8d9391c29912b057a7a7f58807b (diff)
downloadgcc-e8dc6d50748c9fa9b1f572e1b0a39c6ac1d222bf.zip
gcc-e8dc6d50748c9fa9b1f572e1b0a39c6ac1d222bf.tar.gz
gcc-e8dc6d50748c9fa9b1f572e1b0a39c6ac1d222bf.tar.bz2
combine.c (simplify_set, [...]): Use full mask instead of GET_MODE_MASK (mode) as force_to_mode argument.
* combine.c (simplify_set, make_extraction, make_compound_operation make_field_assignment): Use full mask instead of GET_MODE_MASK (mode) as force_to_mode argument. From-SVN: r35348
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c12
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 176c7bb..87c9b6b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
+
+ * combine.c (simplify_set, make_extraction, make_compound_operation
+ make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
+ as force_to_mode argument.
+
Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
* combine.c (if_then_else_cond): Be sure that mode fits in HOST_WIDE_INT
diff --git a/gcc/combine.c b/gcc/combine.c
index 55be324..a38c8ed 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -4883,7 +4883,7 @@ simplify_set (x)
if (GET_MODE_CLASS (mode) == MODE_INT)
{
- src = force_to_mode (src, mode, GET_MODE_MASK (mode), NULL_RTX, 0);
+ src = force_to_mode (src, mode, ~(HOST_WIDE_INT) 0, NULL_RTX, 0);
SUBST (SET_SRC (x), src);
}
@@ -5977,7 +5977,7 @@ make_extraction (mode, inner, pos, pos_rtx, len,
else
new = force_to_mode (inner, tmode,
len >= HOST_BITS_PER_WIDE_INT
- ? GET_MODE_MASK (tmode)
+ ? ~(HOST_WIDE_INT) 0
: ((unsigned HOST_WIDE_INT) 1 << len) - 1,
NULL_RTX, 0);
@@ -6198,7 +6198,7 @@ make_extraction (mode, inner, pos, pos_rtx, len,
inner = force_to_mode (inner, wanted_inner_mode,
pos_rtx
|| len + orig_pos >= HOST_BITS_PER_WIDE_INT
- ? GET_MODE_MASK (wanted_inner_mode)
+ ? ~(HOST_WIDE_INT) 0
: ((((unsigned HOST_WIDE_INT) 1 << len) - 1)
<< orig_pos),
NULL_RTX, 0);
@@ -6528,8 +6528,8 @@ make_compound_operation (x, in_code)
&& GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (tem))
&& subreg_lowpart_p (x))
{
- rtx newer = force_to_mode (tem, mode,
- GET_MODE_MASK (mode), NULL_RTX, 0);
+ rtx newer = force_to_mode (tem, mode, ~(HOST_WIDE_INT) 0,
+ NULL_RTX, 0);
/* If we have something other than a SUBREG, we might have
done an expansion, so rerun outselves. */
@@ -7647,7 +7647,7 @@ make_field_assignment (x)
GET_MODE (src), other, pos),
mode,
GET_MODE_BITSIZE (mode) >= HOST_BITS_PER_WIDE_INT
- ? GET_MODE_MASK (mode)
+ ? ~(HOST_WIDE_INT) 0
: ((unsigned HOST_WIDE_INT) 1 << len) - 1,
dest, 0);