diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2014-03-20 11:39:39 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2014-03-20 11:39:39 +0000 |
commit | 7075c7929077a12412742ba1179b75d1a55348ac (patch) | |
tree | 35b10b8b8c0e0de4cedb4ccb7847fe24d45b3e83 /gcc/config/sparc/sparc.md | |
parent | 9ee5337dd54630e6f0b2d98dc104a8c05d24384d (diff) | |
download | gcc-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.md | 8 |
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") |