]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/arc/arc.c
[ARC] Don't allow the last ZOL insn to be in a delay slot.
authorClaudiu Zissulescu <claziss@synopsys.com>
Thu, 30 Nov 2017 14:42:12 +0000 (15:42 +0100)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Thu, 30 Nov 2017 14:42:12 +0000 (15:42 +0100)
commita09202439b038a7e92900bdbe5aa6488b9409a18
tree9ded931435c2d2329430591a7fe9c439880f9238
parent5d4c34aaade8422c8289daa8a5c95fab7830de37
[ARC] Don't allow the last ZOL insn to be in a delay slot.

The ARC ZOL implementation doesn't allow the last instruction to be a
control instruction or part of a delay slot.  Thus, we add a note to
the last ZOL instruction which will prevent it to finish into a delay
slot.

2017-10-20  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (hwloop_optimize): Prevent the last
        ZOL instruction to end into a delay slot.
* config/arc/arc.md (cond_delay_insn): Check if the instruction
can be placed into a delay slot against reg_note.
(in_delay_slot): Likewise.

testsuite/
2017-10-20  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/loop-3.c: New test.
* gcc.target/arc/loop-4.c: Likewise.

[FIX][ZOL] fix checking for jumps

From-SVN: r255275
gcc/ChangeLog
gcc/config/arc/arc.c
gcc/config/arc/arc.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arc/loop-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arc/loop-4.c [new file with mode: 0644]