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

Aleksey Shipilev shade at redhat.com
Thu Jan 25 17:41:30 UTC 2018


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



More information about the shenandoah-dev mailing list