diff options
author | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-02 15:44:50 +0000 |
---|---|---|
committer | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-08-02 15:44:50 +0000 |
commit | c1f616f4683129679bb036d6db79a576669c9505 (patch) | |
tree | 0590639133f50d9e0624a4599e7d51eeca1c9bce /gcc/optabs.c | |
parent | c9f1fe2344dce13988f30ef655c0ff905bb269df (diff) | |
download | gcc-c1f616f4683129679bb036d6db79a576669c9505.tar.gz |
Unroll my commit of 1999/08/01 16:14:58, there was a communications mixup
about its status.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28403 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r-- | gcc/optabs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c index bad27764cff..2b9091bcf4e 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -857,12 +857,12 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods) /* In case the insn wants input operands in modes different from the result, convert the operands. */ - if ((GET_MODE (op0) != VOIDmode || GET_CODE (op0) == CONST_INT) + if (GET_MODE (op0) != VOIDmode && GET_MODE (op0) != mode0 && mode0 != VOIDmode) xop0 = convert_to_mode (mode0, xop0, unsignedp); - if ((GET_MODE (xop1) != VOIDmode || GET_CODE (xop1) == CONST_INT) + if (GET_MODE (xop1) != VOIDmode && GET_MODE (xop1) != mode1 && mode1 != VOIDmode) xop1 = convert_to_mode (mode1, xop1, unsignedp); @@ -4231,7 +4231,7 @@ expand_fix (to, from, unsignedp) NULL_RTX, 0, OPTAB_LIB_WIDEN); expand_fix (to, target, 0); target = expand_binop (GET_MODE (to), xor_optab, to, - GEN_INT ((HOST_WIDE_INT) -1 << (bitsize - 1)), + GEN_INT ((HOST_WIDE_INT) 1 << (bitsize - 1)), to, 1, OPTAB_LIB_WIDEN); if (target != to) |