Commit a80586cc by Richard Kenner

(gen_lowpart_common): When converting a floating point value into an

integer, use WORD as (first) word.

From-SVN: r13011
parent 059c3d84
...@@ -811,7 +811,7 @@ gen_lowpart_common (mode, x) ...@@ -811,7 +811,7 @@ gen_lowpart_common (mode, x)
&& GET_CODE (x) == CONST_DOUBLE && GET_CODE (x) == CONST_DOUBLE
&& GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT
&& GET_MODE_BITSIZE (mode) == BITS_PER_WORD) && 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 /* 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 two-word integer, we can do this one word at a time and make an
...@@ -827,8 +827,10 @@ gen_lowpart_common (mode, x) ...@@ -827,8 +827,10 @@ gen_lowpart_common (mode, x)
&& GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT
&& GET_MODE_BITSIZE (mode) == 2 * BITS_PER_WORD) && GET_MODE_BITSIZE (mode) == 2 * BITS_PER_WORD)
{ {
rtx lowpart = operand_subword (x, WORDS_BIG_ENDIAN, 0, GET_MODE (x)); rtx lowpart
rtx highpart = operand_subword (x, ! WORDS_BIG_ENDIAN, 0, GET_MODE (x)); = 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 if (lowpart && GET_CODE (lowpart) == CONST_INT
&& highpart && GET_CODE (highpart) == CONST_INT) && highpart && GET_CODE (highpart) == CONST_INT)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment