summaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/sparc.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 9c35dcc8202..dad74dd4b1d 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -3134,6 +3134,11 @@
&& fp_zero_operand (operands[1], DFmode))
goto movdf_is_ok;
+ /* We are able to build any DF constant in integer registers. */
+ if (REGNO (operands[0]) < 32
+ && (reload_completed || reload_in_progress))
+ goto movdf_is_ok;
+
operands[1] = validize_mem (force_const_mem (GET_MODE (operands[0]),
operands[1]));
}