Need reviewer: JDK 8 CR for Support Integer overflow

Joe Darcy joe.darcy at oracle.com
Fri Feb 3 17:07:59 UTC 2012


On 02/03/2012 06:44 AM, Florian Weimer wrote:
> * Roger Riggs:
>
>> The boolean expression can be refactored. (Only bit-31 is significant).
>> But it becomes pretty inscrutable.
>>
>> (x ^ r)<   0&&   (x ^ y)>= 0  becomes
>>
>> (x ^ r)<   0&&   (~(x ^ y))<   0  becomes
>>
>> ((x ^ r)&   ~(x ^ y))<   0
> That's what I got in my second attempt, too. It doesn't result in a
> longer dependency chain because the left side of the&  is two operations
> deep, too.  Therefore, this version should be faster (at least after
> compilation), independent of the input arguments.
>

These sorts of concerns and lovingly (and laboriously!) detailed to Hank 
Warren's bit-twiddling tome "Hacker's Delight" 
(http://www.hackersdelight.org/).

Roger's initial code used one of the recommend idioms from that source.  
We should stick with those idioms unless there is a good reason not to.

-Joe



More information about the core-libs-dev mailing list