aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-08-29 22:38:56 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-08-29 22:38:56 -0400
commit803090c4274d6ab45674cd94dda7b899aea10b33 (patch)
tree7460602cf92021342fd1af6ceb1da38d02a4f7e0
parentc86087060073071ee5d6b8b14be211a6ff0eb95e (diff)
downloadgcc-803090c4274d6ab45674cd94dda7b899aea10b33.zip
gcc-803090c4274d6ab45674cd94dda7b899aea10b33.tar.gz
gcc-803090c4274d6ab45674cd94dda7b899aea10b33.tar.bz2
(emit_library_call): Pass correct number of args to convert_to_mode.
(emit_block_move): Eliminate unnecessary test against HOST_BITS_PER_WIDE_INT. From-SVN: r1994
-rw-r--r--gcc/expr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 17a8fb6..f727956 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1189,7 +1189,10 @@ emit_block_move (x, y, size, align)
enum insn_code code = movstr_optab[(int) mode];
if (code != CODE_FOR_nothing
- && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
+ /* We don't need MODE to be narrower than BITS_PER_HOST_WIDE_INT
+ here because if SIZE is less than the mode mask, as it is
+ returned by the macro, it will definately be less than the
+ actual mode mask. */
&& (unsigned) INTVAL (size) <= GET_MODE_MASK (mode)
&& (insn_operand_predicate[(int) code][0] == 0
|| (*insn_operand_predicate[(int) code][0]) (x, BLKmode))
@@ -1887,7 +1890,7 @@ emit_library_call (va_alist)
Pass it as a double instead. */
#ifdef LIBGCC_NEEDS_DOUBLE
if (LIBGCC_NEEDS_DOUBLE && mode == SFmode)
- val = convert_to_mode (DFmode, val), mode = DFmode;
+ val = convert_to_mode (DFmode, val, 0), mode = DFmode;
#endif
/* There's no need to call protect_from_queue, because