summaryrefslogtreecommitdiff
path: root/gcc/config/sparc/sparc.md
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2014-03-20 11:39:39 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2014-03-20 11:39:39 +0000
commit7075c7929077a12412742ba1179b75d1a55348ac (patch)
tree35b10b8b8c0e0de4cedb4ccb7847fe24d45b3e83 /gcc/config/sparc/sparc.md
parent9ee5337dd54630e6f0b2d98dc104a8c05d24384d (diff)
downloadgcc-7075c7929077a12412742ba1179b75d1a55348ac.tar.gz
sparc.c (sparc_do_work_around_errata): Implement work around for store forwarding issue in the FPU on the UT699.
* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work around for store forwarding issue in the FPU on the UT699. * config/sparc/sparc.md (in_branch_delay): Return false for single FP loads and operations if -mfix-ut699 is specified. (divtf3_hq): Tweak attribute. (sqrttf2_hq): Likewise. From-SVN: r208695
Diffstat (limited to 'gcc/config/sparc/sparc.md')
-rw-r--r--gcc/config/sparc/sparc.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 7f4bd81b7f8..8b6c647fc00 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -462,6 +462,10 @@
(const_string "false")
(and (eq_attr "fix_ut699" "true") (eq_attr "type" "load,sload"))
(const_string "false")
+ (and (eq_attr "fix_ut699" "true")
+ (and (eq_attr "type" "fpload,fp,fpmove,fpmul,fpdivs,fpsqrts")
+ (eq_attr "fptype" "single")))
+ (const_string "false")
(eq_attr "length" "1")
(const_string "true")
] (const_string "false")))
@@ -5513,7 +5517,7 @@
(match_operand:TF 2 "register_operand" "e")))]
"TARGET_FPU && TARGET_HARD_QUAD"
"fdivq\t%1, %2, %0"
- [(set_attr "type" "fpdivd")])
+ [(set_attr "type" "fpdivs")])
(define_expand "divdf3"
[(set (match_operand:DF 0 "register_operand" "=e")
@@ -5744,7 +5748,7 @@
(sqrt:TF (match_operand:TF 1 "register_operand" "e")))]
"TARGET_FPU && TARGET_HARD_QUAD"
"fsqrtq\t%1, %0"
- [(set_attr "type" "fpsqrtd")])
+ [(set_attr "type" "fpsqrts")])
(define_expand "sqrtdf2"
[(set (match_operand:DF 0 "register_operand" "=e")