aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2004-04-24 01:03:11 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2004-04-24 01:03:11 +0000
commit77278891d14e6ff888fee7dcb9ae47a9ec33422b (patch)
treee0716fe203d124b5daa0367dcfc4619c8a2ee56f
parenta3ef788f9d39f457e472b93b4c20e7d658f37c80 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/expmed.c5
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);
}
}