sparc.md (divdf3_fix): Add NOP to prevent back to back store errata sensitive sequenc...
authorDaniel Cederman <cederman@gaisler.com>
Sun, 16 Jul 2017 10:43:15 +0000 (10:43 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sun, 16 Jul 2017 10:43:15 +0000 (10:43 +0000)
* config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
to back store errata sensitive sequence from being generated.
(sqrtdf2_fix): Likewise.

From-SVN: r250234

gcc/ChangeLog
gcc/config/sparc/sparc.md

index 9470e63e365be2bfddc856a4ff0f816894ac0a33..c6b933ddefba87dab74919b6b2620de2230a75d8 100644 (file)
@@ -1,3 +1,9 @@
+2017-07-16  Daniel Cederman  <cederman@gaisler.com>
+
+       * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
+       to back store errata sensitive sequence from being generated.
+       (sqrtdf2_fix): Likewise.
+
 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
 
        * tree-ssa-threadupdate.c (compute_path_counts,
index afdc7d12700b1276a5cc265a582df7c0a0aeaf54..b154003c54ac761f53b5292cb7973d3056719d15 100644 (file)
@@ -6171,10 +6171,10 @@ visl")
        (div:DF (match_operand:DF 1 "register_operand" "e")
                (match_operand:DF 2 "register_operand" "e")))]
   "TARGET_FPU && sparc_fix_ut699"
-  "fdivd\t%1, %2, %0\n\tstd\t%0, [%%sp-8]"
+  "fdivd\t%1, %2, %0\n\tstd\t%0, [%%sp-8]\n\tnop"
   [(set_attr "type" "fpdivd")
    (set_attr "fptype" "double")
-   (set_attr "length" "2")])
+   (set_attr "length" "3")])
 
 (define_insn "divsf3"
   [(set (match_operand:SF 0 "register_operand" "=f")
@@ -6423,10 +6423,10 @@ visl")
   [(set (match_operand:DF 0 "register_operand" "=e")
        (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
   "TARGET_FPU && sparc_fix_ut699"
-  "fsqrtd\t%1, %0\n\tstd\t%0, [%%sp-8]"
+  "fsqrtd\t%1, %0\n\tstd\t%0, [%%sp-8]\n\tnop"
   [(set_attr "type" "fpsqrtd")
    (set_attr "fptype" "double")
-   (set_attr "length" "2")])
+   (set_attr "length" "3")])
 
 (define_insn "sqrtsf2"
   [(set (match_operand:SF 0 "register_operand" "=f")