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 details though). I'd have gone a more aggressive way of simply defaulting to -mno-mmx without any emulation or whatnot though. Richard. > > Uros.