RFR(sh/jdk8): Fix register allocation for thread register is 32bit LRB

Roman Kennke rkennke at redhat.com
Tue Dec 1 19:46:00 UTC 2020


This is a shenandoah/jdk8-specific fix. SFX barriers caused the 
regression that the thread register in 32bit clashes with the index 
register of the source address. Apparently, registers are shuffled 
differently in later JDK interpreters. With a little bit of 
experimentation I found that we can use rsi instead in JDK8.

http://cr.openjdk.java.net/~rkennke/shjdk8-fix32-regalloc-thread/webrev.00/

Testing: hotspot_gc_shenandoah (x86_32) and specjvm fast run. This 
should catch mistakes there reliably, because all of the interpreter is 
generated at the start, any clashes should be caught by the assert.

Ok?

Thanks,
Roman



More information about the shenandoah-dev mailing list