aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-07-12 22:44:28 +0000
committerJeff Law <law@gcc.gnu.org>1999-07-12 16:44:28 -0600
commit22e228e761b841c6ac767a557891f23019b26a93 (patch)
treec96b32eb8b2c7d86eb7c9497fe465363f76db946 /gcc
parent7f401c745ebd24deeb36feec6c096deb201dda15 (diff)
downloadgcc-22e228e761b841c6ac767a557891f23019b26a93.zip
gcc-22e228e761b841c6ac767a557891f23019b26a93.tar.gz
gcc-22e228e761b841c6ac767a557891f23019b26a93.tar.bz2
* rs6000.md (movsf): Do not force easy FP constants into memory.
From-SVN: r28075
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/config/rs6000/rs6000.md3
2 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fd5d177..e7d1bf1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
+ * rs6000.md (movsf): Do not force easy FP constants into memory.
+
* expr.c (expand_expr, case PLUS_EXPR): Pass constants through
immed_double_const to ensure they are properly truncated then
sign extended.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 10f2c08..7a97dd1 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -6145,7 +6145,8 @@
operands[1] = force_reg (SFmode, operands[1]);
}
- if (CONSTANT_P (operands[1]) && TARGET_HARD_FLOAT)
+ if (CONSTANT_P (operands[1]) && TARGET_HARD_FLOAT
+ && ! easy_fp_constant (operands[1], SFmode))
{
operands[1] = force_const_mem (SFmode, operands[1]);
if (! memory_address_p (SFmode, XEXP (operands[1], 0))