A strange bit of code in MacroAssembler::multiply_128_x_128_loop
Andrew Haley
aph at redhat.com
Fri Apr 10 16:49:41 UTC 2015
On 04/10/2015 05:47 PM, Vladimir Kozlov wrote:
> On 4/10/15 9:30 AM, Vladimir Kozlov wrote:
>> It restores counter after:
>>
>> subl(idx, 2);
>> jcc(Assembler::negative, L_check_1);
>>
>> The value could be 1,2,3 before this point (idx & 3 before).
>> After 'sub 2': -1, 0, 1.
>>
>> So we have to restore to positive values before subtracting 1.
>
> And you are right, it is not needed. We get the same (correct) result from 'and idx,1' regardless executing 'add'.
OK, cool. It's not important then: I was just wondering if I'd found a
latent bug.
Andrew.
More information about the hotspot-runtime-dev
mailing list