aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2008-03-21 22:16:49 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2008-03-21 15:16:49 -0700
commit94e9831662a5824b2cc403cba23829ae61616a29 (patch)
tree92fc4bf19a3a6425535a760dbbe3f1f526102995 /gcc/config
parent042a12f4e88525f8438f47b149415f0d035c40fc (diff)
downloadgcc-94e9831662a5824b2cc403cba23829ae61616a29.zip
gcc-94e9831662a5824b2cc403cba23829ae61616a29.tar.gz
gcc-94e9831662a5824b2cc403cba23829ae61616a29.tar.bz2
re PR target/27946 (double to long long and back to double stores to the stack)
2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com> PR target/27947 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and encouraging but not allowing gprs for input; change the input constraint to !f#r. (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing gprs for output; change the output constraint to !f#r. 2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com> PR target/27947 * gcc.target/powerpc/ppc64-double-1.c: New testcase. From-SVN: r133438
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.md6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 777a1ec..cac5fd1 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -6126,7 +6126,7 @@
(define_insn "floatdidf2"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
- (float:DF (match_operand:DI 1 "gpc_reg_operand" "*f")))]
+ (float:DF (match_operand:DI 1 "gpc_reg_operand" "!f#r")))]
"TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"fcfid %0,%1"
[(set_attr "type" "fp")])
@@ -6173,7 +6173,7 @@
"")
(define_insn "fix_truncdfdi2"
- [(set (match_operand:DI 0 "gpc_reg_operand" "=*f")
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=!f#r")
(fix:DI (match_operand:DF 1 "gpc_reg_operand" "f")))]
"TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"fctidz %0,%1"
@@ -6202,7 +6202,7 @@
;; from double rounding.
(define_insn_and_split "floatdisf2_internal1"
[(set (match_operand:SF 0 "gpc_reg_operand" "=f")
- (float:SF (match_operand:DI 1 "gpc_reg_operand" "*f")))
+ (float:SF (match_operand:DI 1 "gpc_reg_operand" "!f#r")))
(clobber (match_scratch:DF 2 "=f"))]
"TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"#"