The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2
commitd5bf2b537e1192c67b3feab202b3850bafa03f95
authorwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2016 13:14:46 +0000 (16 13:14 +0000)
committerwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Dec 2016 13:14:46 +0000 (16 13:14 +0000)
tree09edc8080838f8853d9e7cbeb41973402f229efa
parent588f2bfc7291aeabcbb47c942d4a4d41d2fb4bee
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243745 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/thumb2.md