r255242 - in /branches/gcc-7-branch/gcc: Change...

danielh@gcc.gnu.org danielh@gcc.gnu.org
Wed Nov 29 16:58:00 GMT 2017


Author: danielh
Date: Wed Nov 29 16:58:35 2017
New Revision: 255242

URL: https://gcc.gnu.org/viewcvs?rev=255242&root=gcc&view=rev
Log:
[SPARC] Errata workaround for GRLIB-TN-0010

This patch provides a workaround for the errata described in GRLIB-TN-0010.

If the workaround is enabled it will:

 * Insert a NOP between load instruction and atomic
   instruction (swap, ldstub, casa).

 * Insert a NOP at branch target if load in delay slot
   and atomic instruction at branch target.

It is applicable to UT700.

Backport from mainline
2017-11-29  Daniel Cederman  <cederman@gaisler.com>

gcc/
	* 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.

Modified:
    branches/gcc-7-branch/gcc/ChangeLog
    branches/gcc-7-branch/gcc/config/sparc/sparc.c
    branches/gcc-7-branch/gcc/config/sparc/sync.md



More information about the Gcc-cvs mailing list