# HG changeset patch # User rkennke # Date 1443697103 -7200 # Node ID 42defc20a38cd2d7aa75db6cde758b18445de0aa # Parent b2c1cf8bd98152f7107f5d5355cd75e71d0d9987 More cleanup in C1 code. diff -r b2c1cf8bd981 -r 42defc20a38c src/cpu/x86/vm/c1_LIRGenerator_x86.cpp --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Thu Oct 01 12:22:20 2015 +0200 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Thu Oct 01 12:58:23 2015 +0200 @@ -306,8 +306,9 @@ if (obj_store && UseShenandoahGC) { if (! val->is_register()) { assert(val->is_constant(), "expect constant"); + } else { + val = shenandoah_read_barrier(val, NULL, true); } - val = shenandoah_read_barrier(val, NULL, true); } // emit array address setup early so it schedules better diff -r b2c1cf8bd981 -r 42defc20a38c src/share/vm/c1/c1_LIRGenerator.cpp --- a/src/share/vm/c1/c1_LIRGenerator.cpp Thu Oct 01 12:22:20 2015 +0200 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Thu Oct 01 12:58:23 2015 +0200 @@ -1435,7 +1435,6 @@ case BarrierSet::ShenandoahBarrierSet: G1SATBCardTableModRef_pre_barrier(addr_opr, pre_val, do_load, patch, info); break; - #endif // INCLUDE_ALL_GCS case BarrierSet::CardTableForRS: case BarrierSet::CardTableExtension: @@ -1739,13 +1738,12 @@ obj = shenandoah_write_barrier(obj, info, x->needs_null_check()); LIR_Opr val = value.result(); - if (is_oop) { + if (is_oop && UseShenandoahGC) { if (! val->is_register()) { - LIR_Opr tmp = new_register(T_OBJECT); - __ move(val, tmp); - val = tmp; + assert(val->is_constant(), "expect constant"); + } else { + val = shenandoah_read_barrier(val, NULL, true); } - val = shenandoah_read_barrier(val, NULL, true); } LIR_Address* address; @@ -1819,6 +1817,7 @@ x->is_static() ? "static" : "field", x->printable_bci()); } #endif + LIR_Opr obj = object.result(); bool stress_deopt = StressLoopInvariantCodeMotion && info && info->deoptimize_on_exception(); if (x->needs_null_check() &&