< prev index next >

src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp

BarrierSetC1

*** 31,43 **** #include "c1/c1_Runtime1.hpp" #include "nativeInst_ppc.hpp" #include "runtime/sharedRuntime.hpp" #include "utilities/macros.hpp" #include "vmreg_ppc.inline.hpp" - #if INCLUDE_ALL_GCS - #include "gc/g1/g1BarrierSet.hpp" - #endif // INCLUDE_ALL_GCS #define __ ce->masm()-> RangeCheckStub::RangeCheckStub(CodeEmitInfo* info, LIR_Opr index, --- 31,40 ---- ***************
*** 468,527 **** #endif __ b(_continuation); } - - /////////////////////////////////////////////////////////////////////////////////// - #if INCLUDE_ALL_GCS - - void G1PreBarrierStub::emit_code(LIR_Assembler* ce) { - // At this point we know that marking is in progress. - // If do_load() is true then we have to emit the - // load of the previous value; otherwise it has already - // been loaded into _pre_val. - - __ bind(_entry); - - assert(pre_val()->is_register(), "Precondition."); - Register pre_val_reg = pre_val()->as_register(); - - if (do_load()) { - ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/); - } - - __ cmpdi(CCR0, pre_val_reg, 0); - __ bc_far_optimized(Assembler::bcondCRbiIs1, __ bi0(CCR0, Assembler::equal), _continuation); - - address stub = Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id); - //__ load_const_optimized(R0, stub); - __ add_const_optimized(R0, R29_TOC, MacroAssembler::offset_to_global_toc(stub)); - __ std(pre_val_reg, -8, R1_SP); // Pass pre_val on stack. - __ mtctr(R0); - __ bctrl(); - __ b(_continuation); - } - - void G1PostBarrierStub::emit_code(LIR_Assembler* ce) { - __ bind(_entry); - - assert(addr()->is_register(), "Precondition."); - assert(new_val()->is_register(), "Precondition."); - Register addr_reg = addr()->as_pointer_register(); - Register new_val_reg = new_val()->as_register(); - - __ cmpdi(CCR0, new_val_reg, 0); - __ bc_far_optimized(Assembler::bcondCRbiIs1, __ bi0(CCR0, Assembler::equal), _continuation); - - address stub = Runtime1::entry_for(Runtime1::Runtime1::g1_post_barrier_slow_id); - //__ load_const_optimized(R0, stub); - __ add_const_optimized(R0, R29_TOC, MacroAssembler::offset_to_global_toc(stub)); - __ mtctr(R0); - __ mr(R0, addr_reg); // Pass addr in R0. - __ bctrl(); - __ b(_continuation); - } - - #endif // INCLUDE_ALL_GCS - /////////////////////////////////////////////////////////////////////////////////// - #undef __ --- 465,470 ----
< prev index next >