[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4FA2F769.40903@zytor.com>
Date: Thu, 03 May 2012 14:23:53 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: David Miller <davem@...emloft.net>
CC: torvalds@...ux-foundation.org, viro@...iv.linux.org.uk,
npiggin@...il.com, jana@...ut.de, jlbec@...lplan.org,
linux-kernel@...r.kernel.org
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@...or.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists