summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-07-12 22:44:28 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-07-12 22:44:28 +0000
commitbeab0afc8a10700b434c681bdac023d55525cbe8 (patch)
treec96b32eb8b2c7d86eb7c9497fe465363f76db946
parent79d5c3bab9d915a652538f4bcf57bcbf3e7f9bdc (diff)
downloadppe42-gcc-beab0afc8a10700b434c681bdac023d55525cbe8.tar.gz
ppe42-gcc-beab0afc8a10700b434c681bdac023d55525cbe8.zip
* rs6000.md (movsf): Do not force easy FP constants into memory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28075 138bc75d-0d04-0410-961f-82ee72b054a4
-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 fd5d177eb7a..e7d1bf1e990 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 10f2c084791..7a97dd1f78f 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))
OpenPOWER on IntegriCloud