RFR: Fix 32-bit build by ifdef-ing non-implemented store-val barrier

Roman Kennke rkennke at redhat.com
Thu Jan 25 17:51:33 UTC 2018


Am 25.01.2018 um 18:41 schrieb Aleksey Shipilev:
> http://cr.openjdk.java.net/~shade/shenandoah/build/storeval-i586/webrev.01/
> 
> x86_32 build is broken because Traversal GC references 64-bit registers:
> 
> /home/shade/shenandoah-jdk10/src/hotspot/cpu/x86/shenandoahBarrierSet_x86.cpp: In member function
> ‘virtual void ShenandoahBarrierSet::interpreter_storeval_barrier(MacroAssembler*, Register, Register)’:
> /home/shade/shenandoah-jdk10/src/hotspot/cpu/x86/shenandoahBarrierSet_x86.cpp:167:13: error:
> ‘c_rarg1’ was not declared in this scope
>       __ push(c_rarg1);
>               ^~~~~~~
> /home/shade/shenandoah-jdk10/src/hotspot/cpu/x86/shenandoahBarrierSet_x86.cpp:171:41: error:
> ‘r15_thread’ was not declared in this scope
>       __ g1_write_barrier_pre(noreg, dst, r15_thread, tmp, true, false);
>                                           ^~~~~~~~~~
> 
> The way out is to ifdef the barrier, like we did with the interpreter_write_barrier_impl a few
> blocks above.
> 
> Testing: failing build
> 
> -Aleksey
> 

Oh my. Yes, please push. Thanks for fixing it!

Roman



More information about the shenandoah-dev mailing list