PR target/49920
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Jul 2011 17:50:08 +0000 (17:50 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 31 Jul 2011 17:50:08 +0000 (17:50 +0000)
commite56ef720ea5bd01f9e928dc09a08a359a914c80a
tree3b737a65716e966b955f7fa5d5efa360c774f2b5
parent918b2ca0fefd575455acf9b9c5fdf5f5e2f28cc4
PR target/49920
* config/i386/i386.md (strset): Do not expand strset_singleop
when %eax or $edi are fixed.
(*strsetdi_rex_1): Disable when %eax or %edi are fixed.
(*strsetsi_1): Ditto.
(*strsethi_1): Ditto.
(*strsetqi_1): Ditto.
(*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
(*rep_stossi): Ditto.
(*rep_stosqi): Ditto.
(cmpstrnsi): Also fail when %ecx is fixed.
(*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
(*cmpstrnqi_1): Ditto.
(*strlenqi_1): Ditto.
(*strmovdi_rex_1): Disable when %esi or %edi are fixed.
(*strmovsi_1): Ditto.
(*strmovhi_1): Ditto.
(*strmovqi_1): Ditto.
(*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
(*rep_movsi): Ditto.
(*rep_movqi): Ditto.

testsuite/ChangeLog:

PR target/49920
* gcc.target/i386/pr49920.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176979 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr49920.c [new file with mode: 0644]