diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2004-04-24 01:03:11 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2004-04-24 01:03:11 +0000 |
commit | 77278891d14e6ff888fee7dcb9ae47a9ec33422b (patch) | |
tree | e0716fe203d124b5daa0367dcfc4619c8a2ee56f | |
parent | a3ef788f9d39f457e472b93b4c20e7d658f37c80 (diff) | |
download | gcc-77278891d14e6ff888fee7dcb9ae47a9ec33422b.zip gcc-77278891d14e6ff888fee7dcb9ae47a9ec33422b.tar.gz gcc-77278891d14e6ff888fee7dcb9ae47a9ec33422b.tar.bz2 |
expmed.c (expand_mult_highpart_adjust): Do not assume OP1 is a CONST_INT.
* expmed.c (expand_mult_highpart_adjust): Do not assume OP1
is a CONST_INT.
(expand_mult_highpart_optab): Call expand_mult_highpart_adjust
with NARROW_OP1 instead of OP1.
From-SVN: r81127
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/expmed.c | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49f94fe..2b717eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com> + * expmed.c (expand_mult_highpart_adjust): Do not assume OP1 + is a CONST_INT. + (expand_mult_highpart_optab): Call expand_mult_highpart_adjust + with NARROW_OP1 instead of OP1. + +2004-04-24 Ulrich Weigand <uweigand@de.ibm.com> + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__ and __s390x__ hosts. diff --git a/gcc/expmed.c b/gcc/expmed.c index 3eb7454..5495979 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2841,7 +2841,6 @@ expand_mult_highpart_adjust (enum machine_mode mode, rtx adj_operand, rtx op0, rtx tem; enum rtx_code adj_code = unsignedp ? PLUS : MINUS; - op1 = gen_int_mode (INTVAL (op1), mode); tem = expand_shift (RSHIFT_EXPR, mode, op0, build_int_2 (GET_MODE_BITSIZE (mode) - 1, 0), NULL_RTX, 0); @@ -2914,7 +2913,7 @@ expand_mult_highpart_optab (enum machine_mode mode, rtx op0, rtx op1, unsignedp, OPTAB_DIRECT); if (tem) /* We used the wrong signedness. Adjust the result. */ - return expand_mult_highpart_adjust (mode, tem, op0, op1, + return expand_mult_highpart_adjust (mode, tem, op0, narrow_op1, tem, unsignedp); } @@ -2954,7 +2953,7 @@ expand_mult_highpart_optab (enum machine_mode mode, rtx op0, rtx op1, { tem = extract_high_half (mode, tem); /* We used the wrong signedness. Adjust the result. */ - return expand_mult_highpart_adjust (mode, tem, op0, op1, + return expand_mult_highpart_adjust (mode, tem, op0, narrow_op1, target, unsignedp); } } |