[RTEMS Project] #3242: Workarounds for UT699, UT700, and GR712RC errata

RTEMS trac trac at rtems.org
Thu Nov 30 08:31:12 UTC 2017


#3242: Workarounds for UT699, UT700, and GR712RC errata
-----------------------------+------------------------------
 Reporter:  Sebastian Huber  |       Owner:  Sebastian Huber
     Type:  defect           |      Status:  assigned
 Priority:  normal           |   Milestone:  5.1
Component:  tool/gcc         |     Version:
 Severity:  normal           |  Resolution:
 Keywords:                   |
-----------------------------+------------------------------

Comment (by Sebastian Huber):

 {{{
 2017-11-29  Daniel Cederman  <cederman at gaisler.com>

         Backport from mainline
         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
         movsi_pic_gotdata_op instruction as a load for the UT699 errata
         workaround.

 2017-11-29  Martin Aberg  <maberg at gaisler.com>

         Backport from mainline
         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
         to prevent b2bst errata sequence.
         (sqrtdf2_fix): Likewise.

 2017-11-29  Daniel Cederman  <cederman at gaisler.com>

         Backport from mainline
         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
         (div_sqrt_insn_p): New function.
         (sparc_do_work_around_errata): Insert NOP instructions to
         prevent sequences that could trigger the TN-0013 errata for
         certain LEON3 processors.
         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
         (in_branch_delay): Prevent div and sqrt in delay slot if
         fix_lost_divsqrt.
         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.

 2017-11-29  Daniel Cederman  <cederman at gaisler.com>

         Backport from mainline
         * config/sparc/sparc.c (atomic_insn_p): New function.
         (sparc_do_work_around_errata): Insert NOP instructions to
         prevent sequences that could trigger the TN-0010 errata for
         UT700.
         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
         instruction referable in atomic_insns_p.

 2017-11-29  Daniel Cederman  <cederman at gaisler.com>

         Backport from mainline
         * config/sparc/sync.md (swapsi): 16-byte align if
 sparc_fix_gr712rc.
         (atomic_compare_and_swap_leon3_1): Likewise.
         (ldstub): Likewise.

 2017-11-29  Daniel Cederman  <cederman at gaisler.com>

         Backport from mainline
         * config/sparc/sparc.c (fpop_insn_p): New function.
         (sparc_do_work_around_errata): Insert NOP instructions to
         prevent sequences that could trigger the TN-0012 errata for
         GR712RC.
         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
         * config/sparc/sparc.md (fix_gr712rc): New attribute.
         (in_branch_annul_delay): Prevent floating-point instructions
         in delay slot of annulled integer branch.
 }}}

--
Ticket URL: <http://devel.rtems.org/ticket/3242#comment:2>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list