RFR: 8217874: Shenandoah: AArch64: Clobbered register in ShenandoahBarrierSetAssembler::cmpxchg_oop()

Roman Kennke rkennke at redhat.com
Mon Jan 28 12:46:06 UTC 2019


In AArch64, when called from C2, in
ShenandoahBarrierSetAssembler::cmpxchg_oop() the result register may
overlap with other input argument registers and thus fail the leading
assert, and lead to clobbered registers. In the body of the code block,
a temporary register should be used instead, and result should only get
filled in at the end.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8217874
Webrev:
http://cr.openjdk.java.net/~rkennke/JDK-8217874/webrev.00/

Testing: Some tests failed before (e.g. TestVerifyJCStress.java), those
are good now. No regressions in hotspot_gc_shenandoah either.

Can I get a review please?

Thanks, Roman


More information about the hotspot-compiler-dev mailing list