diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-07-14 18:46:08 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-07-14 18:46:08 -0400 |
commit | ef0e171b50823bc8d6e4b156ee6d87e732971b8e (patch) | |
tree | 65ac236b0241444226039e98e2b9435c036f64b5 | |
parent | 635b513f6c95a39d858c2f78601d50e30e650113 (diff) | |
download | gcc-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.md | 4 |
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])) { |