RFR JDK-8059510 Compact symbol table layout inside shared archive

Jiangli Zhou jiangli.zhou at oracle.com
Thu Dec 4 02:06:23 UTC 2014


Hi Ioi,

I've updated the webrev: 
http://cr.openjdk.java.net/~jiangli/8059510/webrev.06/

Thanks,
Jiangli

On 12/03/2014 03:38 PM, Jiangli Zhou wrote:
> Hi Ioi,
>>
>> I think these two blocks can be rewritten to avoid the use of the #ifdef
>>  162 #ifdef _LP64
>>  163   *p++ = juint(base_address >> 32);
>>  164 #else
>>  165   *p++ = 0;
>>  166 #endif
>>  167   *p++ = juint(base_address & 0xffffffff); // base address
>>
>>  205   juint upper = *p++;
>>  206   juint lower = *p++;
>>  207 #ifdef _LP64
>>  208   _base_address = (uintx(upper) << 32 ) + uintx(lower);
>>  209 #else
>>  210   _base_address = uintx(lower);
>>  211 #endif
>>
>> ->
>>
>> 163   *p++ = juint(base_address >> 32);
>>  167   *p++ = juint(base_address & 0xffffffff);
>>
>>  205   juint upper = *p++;
>>  206   juint lower = *p++;
>>  208   _base_address = (uintx(upper) << 32 ) + uintx(lower);
>>
>
> Actually it would have problem on 32-bit platforms. The behaviour of 
> shift by greater than or equal to the number of bits that exist in the 
> operand is undefined. Gcc gives warning about the >>32 on linux-x86.
>
> Thanks,
> Jiangli
>
>



More information about the hotspot-runtime-dev mailing list