RFR (M) 8135085: Change Method::_intrinsic_id from u1 to u2

Aleksey Shipilev aleksey.shipilev at oracle.com
Wed Sep 9 17:22:21 UTC 2015


Hi,

In VarHandles development, we have reached the tipping point when
Method::_intrinsic_id is not enough to be u1, as we have >255 intrinsics:
  https://bugs.openjdk.java.net/browse/JDK-8135085

This is a patch that changes u1 -> u2:
  http://cr.openjdk.java.net/~shade/8135085/webrev.00/

Quite a few places in VM assume the _instance_id size, I changed those
as well, and also put more asserts where we assume the particular value
width.

Testing:
  * JPRT on all platforms
  * Method::Method instrumentation to figure out the number of Methods
and their sizeof-s. There seems to be no regression in Method instance
size at least on Linux x86_64, because the instance alignment seems to
have enough gaps to fit the larger u2 field. (I played more, and it
seems three more u1 fields can be fitted in).

Please review! If there are any problems/concerns, could anyone from
runtime team please take over this work? We will use this prototype
version in VarHandles to unblock the development for the time being.

Thanks,
-Aleksey



More information about the hotspot-runtime-dev mailing list