Messages in this thread |  | | | Date | Thu, 03 May 2012 14:23:53 -0700 | | From | "H. Peter Anvin" <> | | Subject | Re: Oops with DCACHE_WORD_ACCESS and ocfs2, autofs4 |
| |
On 05/03/2012 11:48 AM, David Miller wrote: > From: "H. Peter Anvin" <hpa@zytor.com> > Date: Thu, 03 May 2012 11:28:44 -0700 > >> + "lea" __WORDSUFFIX " %2,%1\n\t" >> + "and" __WORDSUFFIX " %4,%1\n\t" >> + "shl" __WORDSUFFIX " $3,%1\n\t" >> + "shr" __WORDSUFFIX " %b1,%0\n\t" >> >> Also, for this sequence of instructions using %ecx unconditionally is >> actually better (avoids REX prefixes on 64 bits.) > > If it doesn't exist already, someone should really add bits to > binutils so you guys don't have to string paste like this. > > For example a bit a mnenomics that the assembler internally changes > into the 64-bit or 32-bit variant based upon what bitness it is > targetting. > > We have these on sparc, for example "ldn" is transformed into "lduw" > for 32-bit and "ldx" for 64-bit.
I don't think we really need it. For the vast majority of all instructions the size is given by the operands, and for the balance we can generally use %z and/or <asm/asm.h>. %z would be more useful if there wasn't for the fact that some now quite old versions of gcc incorrectly produce "ll" instead of "q".
-hpa
|  |