[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 04 May 2016 18:27:24 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: noloader@...il.com, Andi Kleen <andi@...stfloor.org>
CC: John Denker <jsd@...n.com>, "Theodore Ts'o" <tytso@....edu>,
linux-kernel@...r.kernel.org,
Stephan Mueller <smueller@...onox.de>,
Herbert Xu <herbert@...dor.apana.org.au>,
Sandy Harris <sandyinchina@...il.com>,
cryptography@...edaemon.net, linux-crypto@...r.kernel.org
Subject: Re: linux/bitops.h
On May 4, 2016 6:20:32 PM PDT, Jeffrey Walton <noloader@...il.com> wrote:
>On Wed, May 4, 2016 at 7:06 PM, Andi Kleen <andi@...stfloor.org> wrote:
>> On Wed, May 04, 2016 at 03:06:04PM -0700, John Denker wrote:
>>> On 05/04/2016 02:56 PM, H. Peter Anvin wrote:
>>> >> Beware that shifting by an amount >= the number of bits in the
>>> >> word remains Undefined Behavior.
>>>
>>> > This construct has been supported as a rotate since at least gcc2.
>>>
>>> How then should we understand the story told in commit d7e35dfa?
>>> Is the story wrong?
>>
>> I don't think Linux runs on a system where it would make a difference
>> (like a VAX), and also gcc always converts it before it could.
>> Even UBSan should not complain because it runs after the conversion
>> to ROTATE.
>>
>>From what I understand, its a limitation in the barrel shifter and the
>way the shift bits are handled.
>
>Linux runs on a great number of devices, so its conceivable (likely?)
>a low-cost board would have hardware limitations that not found in
>modern desktops and servers or VAX.
>
>Jeff
This is a compiler feature, though. And if icc or clang don't support the idiom they would never have compiled a working kernel.
--
Sent from my Android device with K-9 Mail. Please excuse brevity and formatting.
Powered by blists - more mailing lists