aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-07-14 18:46:08 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-07-14 18:46:08 -0400
commitef0e171b50823bc8d6e4b156ee6d87e732971b8e (patch)
tree65ac236b0241444226039e98e2b9435c036f64b5
parent635b513f6c95a39d858c2f78601d50e30e650113 (diff)
downloadgcc-ef0e171b50823bc8d6e4b156ee6d87e732971b8e.zip
gcc-ef0e171b50823bc8d6e4b156ee6d87e732971b8e.tar.gz
gcc-ef0e171b50823bc8d6e4b156ee6d87e732971b8e.tar.bz2
(movsi): Convert a CONST_DOUBLE into a CONST_INT of the low part.
From-SVN: r10135
-rw-r--r--gcc/config/rs6000/rs6000.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 549c55d..2899ecb 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -3846,6 +3846,10 @@
if (GET_CODE (operands[0]) != REG)
operands[1] = force_reg (SImode, operands[1]);
+ /* Convert a move of a CONST_DOUBLE into a CONST_INT */
+ if (GET_CODE (operands[1]) == CONST_DOUBLE)
+ operands[1] = GEN_INT (CONST_DOUBLE_LOW (operands[1]));
+
if (CONSTANT_P (operands[1]) && GET_CODE (operands[1]) != CONST_INT
&& ! LEGITIMATE_CONSTANT_POOL_ADDRESS_P (operands[1]))
{