From a80586cc2a2c1f718c38dbe38e38b18b5b5469bf Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 23 Oct 1996 17:15:58 -0400 Subject: [PATCH] (gen_lowpart_common): When converting a floating point value into an integer, use WORD as (first) word. From-SVN: r13011 --- gcc/emit-rtl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 522b95ff1c9..337e9732f52 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -811,7 +811,7 @@ gen_lowpart_common (mode, x) && GET_CODE (x) == CONST_DOUBLE && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT && GET_MODE_BITSIZE (mode) == BITS_PER_WORD) - return operand_subword (x, 0, 0, GET_MODE (x)); + return operand_subword (x, word, 0, GET_MODE (x)); /* Similarly, if this is converting a floating-point value into a two-word integer, we can do this one word at a time and make an @@ -827,8 +827,10 @@ gen_lowpart_common (mode, x) && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT && GET_MODE_BITSIZE (mode) == 2 * BITS_PER_WORD) { - rtx lowpart = operand_subword (x, WORDS_BIG_ENDIAN, 0, GET_MODE (x)); - rtx highpart = operand_subword (x, ! WORDS_BIG_ENDIAN, 0, GET_MODE (x)); + rtx lowpart + = operand_subword (x, word + WORDS_BIG_ENDIAN, 0, GET_MODE (x)); + rtx highpart + = operand_subword (x, word + ! WORDS_BIG_ENDIAN, 0, GET_MODE (x)); if (lowpart && GET_CODE (lowpart) == CONST_INT && highpart && GET_CODE (highpart) == CONST_INT) -- 2.30.2