The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2 doesn't suppor...
authorWilco Dijkstra <wdijkstr@arm.com>
Fri, 16 Dec 2016 13:14:46 +0000 (13:14 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Fri, 16 Dec 2016 13:14:46 +0000 (13:14 +0000)
commited2def05fefdf59e42ad6f13262e5323030e1610
tree09edc8080838f8853d9e7cbeb41973402f229efa
parentc67b6f268397b2fc20e72da19e276d2b027ddee4
The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2 doesn't support RSC with an immediate.

The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2
doesn't support RSC with an immediate.  We can however emulate RSC with
zero using a shifted SBC.  If we add this to subsi3_carryin the negdi
patterns can be merged, simplifying things a bit.  This should generate
identical code in all cases.

    gcc/
        * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0.
        (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2.
        * config/arm/thumb2.md (thumb2_negdi2): Remove pattern.

From-SVN: r243745
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/thumb2.md