RFR(sh/jdk8): [backport] 8232992: Shenandoah: Implement self-fixing interpreter LRB

Roman Kennke rkennke at redhat.com
Thu Nov 26 20:00:14 UTC 2020


This backports the issue:
https://bugs.openjdk.java.net/browse/JDK-8257180

It is different from later incarnations. The JDK8 interpreter code does 
not call through stub as we did when we originally implemented the sfx 
barriers, but instead calls the runtime entries directly. This was 
because we have no simple GC interface for interpreter stub generation. 
However, we switched to that runtime calling model in tip later. So what 
I did was adapt the *current* interpreter code, take out handling of 
weak access, and adjust a little to jdk8.

Another change was, instead of adding our LRB into 
MacroAssembler::load_heap_oop(), we now fully replace it. That's because 
we need to preserve registers of the src address. This would have been 
much too messy otherwise.

Testing: hotspot_gc_shenandoah (x86 and aarch64)

http://cr.openjdk.java.net/~rkennke/JDK-8232992-jdk8/webrev.01/

Ok?



More information about the shenandoah-dev mailing list