RFR: Fix x86_32 build failure due to cmpxchg_oop mismatch
Aleksey Shipilev
shade at redhat.com
Tue Jun 12 08:08:06 UTC 2018
x86_32 build fails with:
/pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp:626:59:
error: no ‘void MacroAssembler::cmpxchg_oop_shenandoah(MacroAssembler*, Register, Address, Register,
Register, bool, Register, Register)’ member function declared in class ‘MacroAssembler’
Register tmp1, Register tmp2) {
This is because non-LP64 stub should match the signature with existing cmpxchg_oop.
Fix:
diff -r 10818b1e3954 src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
--- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Tue Jun 12 09:54:58
2018 +0200
+++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Tue Jun 12 10:06:41
2018 +0200
@@ -621,9 +621,9 @@
// Special Shenandoah CAS implementation that handles false negatives
// due to concurrent evacuation.
#ifndef _LP64
-void MacroAssembler::cmpxchg_oop_shenandoah(MacroAssembler* masm, Register res, Address addr,
Register oldval, Register newval,
- bool exchange,
- Register tmp1, Register tmp2) {
+void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, DecoratorSet decorators,
+ Register res, Address addr, Register oldval,
Register newval,
+ bool exchange, bool encode, Register tmp1, Register
tmp2) {
// Shenandoah has no 32-bit version for this.
Unimplemented();
}
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list