This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49920] unable to find a register to spill in class âDIREGâ
- From: "uros at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 31 Jul 2011 17:50:30 +0000
- Subject: [Bug target/49920] unable to find a register to spill in class âDIREGâ
- Auto-submitted: auto-generated
- References: <bug-49920-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49920
--- Comment #3 from uros at gcc dot gnu.org 2011-07-31 17:50:11 UTC ---
Author: uros
Date: Sun Jul 31 17:50:08 2011
New Revision: 176979
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176979
Log:
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.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr49920.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.md
trunk/gcc/testsuite/ChangeLog