RFR (S): 8193063: Enabling narrowOop values for RawAccess accesses

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

RFR (S): 8193063: Enabling narrowOop values for RawAccess accesses

Erik Österlund-2
Hi,

In order to replace oopDesc::load_heap_oop() but with stricter memory
ordering properties, like MO_VOLATILE, some Access tweaks are required
to allow RawAccess<>::oop_load() to return narrowOop values.

I made the necessary changes to allow narrowOop values for all RawAccess
operations that have an address (not the _at variants).

While I am at it, I thought I'd clean up a few things that bug me:

* The decorator verification for memory ordering specifically did not
work as I originally intended, leading to harder to decipher compiler
errors deeper down when using the wrong memory ordering decorators
* An unnecessary include of oop.inline.hpp was removed from the G1
barrier set.

This change helps solving the following bug:
https://bugs.openjdk.java.net/browse/JDK-8129440

This bug is filed under:
https://bugs.openjdk.java.net/browse/JDK-8193063

Webrev:
http://cr.openjdk.java.net/~eosterlund/8193063/webrev.00/

Thanks,
/Erik