[PATCH, i386]: Commited: Fix PR target/30825, bootstrap failure when -msse is used

Uros Bizjak ubizjak@gmail.com
Sat Feb 24 00:38:00 GMT 2007


Hello!

> On Fri, Feb 23, 2007 at 01:54:35PM -0000, ubizjak at gmail dot com wrote:
> >         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
> >         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
> >         (*movsf_1): Penalize MMX moves.
>
> Ok.  I guess I really need to get around to disabling mmx when 
> it's not supposed to be used.
>
> ~r
>   

Attached patch fixes PR target/30825. The problem, as described in PR, 
was in changed register preferences, introduced by inter-unit moves 
patch. The consequence was that by using -mmmx (or -msseX), MMX 
registers were used and this blocked further usage of X87 instructions. 
The bootstrap failed because of that.

Attached patch is slightly different that the one in PR. The change is 
in zero_extendsidi_* patterns, where moves to Y2 registers are not 
penalized, and in movsf_1 pattern, where moves to Yi registers are only 
slightly penalized. This is similar to other patterns.


2007-02-23  Uros Bizjak  <ubizjak@gmail.com <mailto:ubizjak@gmail.com>>

	PR target/30825
        * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
        zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
        (*movsf_1): Penalize MMX moves.


Patch was re-tested and re-bootstrapped on i686-pc-linux-gnu and 
x86_64-pc-linux-gnu for all default languages. Also, cc1 was checked for 
%mmX registers in both cases. Patch is committed to SVN.

Uros.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: i386-pref.diff
Type: text/x-patch
Size: 2181 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070224/4a0804e5/attachment.bin>


More information about the Gcc-patches mailing list