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
This commit is contained in:
parent
a3ef788f9d
commit
77278891d1
|
@ -1,3 +1,10 @@
|
||||||
|
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>
|
2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
|
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
|
||||||
|
|
|
@ -2841,7 +2841,6 @@ expand_mult_highpart_adjust (enum machine_mode mode, rtx adj_operand, rtx op0,
|
||||||
rtx tem;
|
rtx tem;
|
||||||
enum rtx_code adj_code = unsignedp ? PLUS : MINUS;
|
enum rtx_code adj_code = unsignedp ? PLUS : MINUS;
|
||||||
|
|
||||||
op1 = gen_int_mode (INTVAL (op1), mode);
|
|
||||||
tem = expand_shift (RSHIFT_EXPR, mode, op0,
|
tem = expand_shift (RSHIFT_EXPR, mode, op0,
|
||||||
build_int_2 (GET_MODE_BITSIZE (mode) - 1, 0),
|
build_int_2 (GET_MODE_BITSIZE (mode) - 1, 0),
|
||||||
NULL_RTX, 0);
|
NULL_RTX, 0);
|
||||||
|
@ -2914,7 +2913,7 @@ expand_mult_highpart_optab (enum machine_mode mode, rtx op0, rtx op1,
|
||||||
unsignedp, OPTAB_DIRECT);
|
unsignedp, OPTAB_DIRECT);
|
||||||
if (tem)
|
if (tem)
|
||||||
/* We used the wrong signedness. Adjust the result. */
|
/* 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);
|
tem, unsignedp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2954,7 +2953,7 @@ expand_mult_highpart_optab (enum machine_mode mode, rtx op0, rtx op1,
|
||||||
{
|
{
|
||||||
tem = extract_high_half (mode, tem);
|
tem = extract_high_half (mode, tem);
|
||||||
/* We used the wrong signedness. Adjust the result. */
|
/* 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);
|
target, unsignedp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue