On Mon, Feb 04, 2019 at 12:04:04PM +0100, Richard Biener wrote:
> On Mon, Feb 4, 2019 at 10:10 AM Uros Bizjak <ubiz...@gmail.com> wrote:
> >
> > On Fri, Feb 1, 2019 at 10:18 PM H.J. Lu <hjl.to...@gmail.com> wrote:
> > >
> > > On x86-64, since __m64 is returned and passed in XMM registers, we can
> > > implement MMX intrinsics with SSE instructions. To support it, we disable
> > > MMX by default in 64-bit mode so that MMX registers won't be available
> > > with x86-64.  Most of MMX instructions have equivalent SSE versions and
> > > results of some SSE versions need to be reshuffled to the right order
> > > for MMX.  Thee are couple tricky cases:
> >
> > I don't think we have to disable MMX registers, but we have to tune
> > register allocation preferences to not allocate MMX register unless
> > really necessary. In practice, this means to change y constraints to
> > *y when TARGET_MMX_WITH_SSE is active (probably using enable
> > attribute). This would solve problem with assembler clobbers that Andi
> > exposed.
> 
> But is "unless really necessary" good enough to not have it wrongly
> under any circumstance?  I actually like HJs patch (not looked at the

Or we could disable MMX registers unless they are referenced in inline asm
(clobbers or constraints).

Anyway, is the patch set meant for GCC9 or GCC10?  I'd say it would be quite
dangerous to change this in GCC9.

        Jakub

Reply via email to