Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/external/gpl3/gcc/dist/gcc/config/i386



On Mon, Oct 08, 2012 at 08:12:26AM +0100, David Laight wrote:
> On Sat, Oct 06, 2012 at 02:10:46PM +0000, Joerg Sonnenberger wrote:
> > Module Name:        src
> > Committed By:       joerg
> > Date:               Sat Oct  6 14:10:46 UTC 2012
> > 
> > Modified Files:
> >     src/external/gpl3/gcc/dist/gcc/config/i386: i386.h
> > 
> > Log Message:
> > PR 46978: ICE on spilling MMX registers
> > 
> > GCC/i386 has code to lower the required alignment for long long to 32bit
> > as the CPU doesn't need more. It is also using the same mode for setting
> > up the MMX registers and in turn, the stack slots reserved for spilling
> > require 32bit alignment. The actual vector types used keep the original
> > 64bit alignment, so when the compiler wants to spill a MMX register, it
> > hits an assertion. Fix this by using the vector type as raw type for MMX
> > registers.
> 
> Doesn't that enforce a 64bit alignment when it isn't needed?

Correct. Given the general usefulness of MMX, I'm inclined to just
ignore it.

> Misaligned transfers for stack slots for MMX are actually fine.

Also correct. I haven't had time to hunt down where it comes up with
that assumption though.

Joerg


Home | Main Index | Thread Index | Old Index