[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