RFR: Backport SFX-related changes to sh/jdk8
Roman Kennke
rkennke at redhat.com
Fri May 22 22:10:53 UTC 2020
This backports changes related to self-fixing barriers to sh/jdk8:
- 8202976: Add C1 lea patching support for x86:
This is non-Shenandoah change from upstream JDK11. We need support for
patching lea instructions, it has been added to upstream in jdk11
timeframe for ZGC. I modified it so that patching code is only
generated when using Shenandoah. I also added a tiny bit of AARCH64
support, which came in upstream with the huge ZGC Support for AARCH64
change.
- 8231087: Shenandoah: Self-fixing load reference barriers for C1/C2
This is the main change for C2 support. It also contains C1 support,
but it wouldn't do anything in JDK8 until it also gets interpreter
support, because in sh/jdk8, C1 LRB calls via interpreter LRB-asm (not
via its own stub). The C1 parts are significantly different, please
review carefully.
- 8233021: Shenandoah: SBSC2::is_shenandoah_lrb_call should match all
LRB shapes
A trivial bug-fix that I took 1:1 to sh/jdk8
- 8232992: Shenandoah: Implement self-fixing interpreter LRB
Interpreter support. Pretty much a rewrite, because 1. the barrier
interface is very different and 2. it also needs to handle C1 calls and
do some slightly different register shuffling
Webrev:
http://cr.openjdk.java.net/~rkennke/sfx-jdk8/webrev.01/
Testing: hotspot_gc_shenandoah (x86_64, aarch64), specjvm (with Xint,
C1-only and C2)
I can build x86_32, but cannot test it here because of a weird kernel
bug. Can somebody with a stable x86_32 env please give it a try?
Can I also please get a careful review?
Thanks,
Roman
More information about the shenandoah-dev
mailing list