RE: x86/boot: Avoid using Intel mnemonics in AT&T syntax asm

From: David Laight
Date: Tue Jan 10 2023 - 09:02:18 EST


From: Borislav Petkov
> Sent: 10 January 2023 11:37
>
> On Tue, Jan 10, 2023 at 12:15:40PM +0100, Peter Zijlstra wrote:
> >
> > With 'GNU assembler (GNU Binutils for Debian) 2.39.90.20221231' the
> > build now reports:
> >
> > arch/x86/realmode/rm/../../boot/bioscall.S: Assembler messages:
> > arch/x86/realmode/rm/../../boot/bioscall.S:35: Warning: found `movsd'; assuming `movsl' was meant
> > arch/x86/realmode/rm/../../boot/bioscall.S:70: Warning: found `movsd'; assuming `movsl' was meant
> >
> > arch/x86/boot/bioscall.S: Assembler messages:
> > arch/x86/boot/bioscall.S:35: Warning: found `movsd'; assuming `movsl' was meant
> > arch/x86/boot/bioscall.S:70: Warning: found `movsd'; assuming `movsl' was meant
> >
> > Which is due to:
> >
> > PR gas/29525
> >
> > Note that with the dropped CMPSD and MOVSD Intel Syntax string insn
> > templates taking operands, mixed IsString/non-IsString template groups
> > (with memory operands) cannot occur anymore. With that
> > maybe_adjust_templates() becomes unnecessary (and is hence being
> > removed).
> >
> > More details: https://sourceware.org/bugzilla/show_bug.cgi?id=29525
>
> Right, I'm being told the particular problem here is is that the 'd' suffix is
> "conflicting" in the sense that you can have SSE mnemonics like movsD %xmm...
> and the same thing also for string ops (which is the case here) so apparently
> the agreement in binutils land is to use the always accepted suffixes 'l' or 'q'
> and phase out 'd' slowly...
>
> Which is basically what the PR text says above but more understanable. :-)
>
> Might wanna add that to the commit message.

Can they be changed to movsq ?
movsl has an implied 32bitness about it.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)