diff options
author | Daniel Cederman <cederman@gaisler.com> | 2017-11-29 15:15:48 +0000 |
---|---|---|
committer | Daniel Hellstrom <danielh@gcc.gnu.org> | 2017-11-29 16:15:48 +0100 |
commit | dcacda0cc1c9ecd23c15e8403e8025129502fed9 (patch) | |
tree | e20f603705106c0bdc0546ee661b6c279d4ba2ea /gcc/combine.c | |
parent | f7300fff74becf365cdadd23c9447521da852e84 (diff) | |
download | gcc-dcacda0cc1c9ecd23c15e8403e8025129502fed9.zip gcc-dcacda0cc1c9ecd23c15e8403e8025129502fed9.tar.gz gcc-dcacda0cc1c9ecd23c15e8403e8025129502fed9.tar.bz2 |
[SPARC] Errata workaround for GRLIB-TN-0012
This patch provides a workaround for the errata described in GRLIB-TN-0012.
If the workaround is enabled it will:
* Prevent any floating-point operation from being placed in the
delay slot of an annulled integer branch.
* Place a NOP at the branch target of an integer branch if it is
a floating-point operation or a floating-point branch.
It is applicable to GR712RC.
2017-11-29 Daniel Cederman <cederman@gaisler.com>
gcc/
* 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.
From-SVN: r255234
Diffstat (limited to 'gcc/combine.c')
0 files changed, 0 insertions, 0 deletions