RFR: Fix x86_32 build failure due to cmpxchg_oop mismatch
Roman Kennke
rkennke at redhat.com
Tue Jun 12 08:54:18 UTC 2018
Oops. Please push! Thanks! Roman
> 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