equal
deleted
inserted
replaced
625 // |
625 // |
626 void gen_write_ref_array_pre_barrier(Register from, Register to, Register count, bool dest_uninitialized, Register Rtmp1, |
626 void gen_write_ref_array_pre_barrier(Register from, Register to, Register count, bool dest_uninitialized, Register Rtmp1, |
627 Register preserve1 = noreg, Register preserve2 = noreg) { |
627 Register preserve1 = noreg, Register preserve2 = noreg) { |
628 BarrierSet* const bs = Universe::heap()->barrier_set(); |
628 BarrierSet* const bs = Universe::heap()->barrier_set(); |
629 switch (bs->kind()) { |
629 switch (bs->kind()) { |
630 case BarrierSet::G1SATBCTLogging: |
630 case BarrierSet::G1BarrierSet: |
631 // With G1, don't generate the call if we statically know that the target in uninitialized |
631 // With G1, don't generate the call if we statically know that the target in uninitialized |
632 if (!dest_uninitialized) { |
632 if (!dest_uninitialized) { |
633 int spill_slots = 3; |
633 int spill_slots = 3; |
634 if (preserve1 != noreg) { spill_slots++; } |
634 if (preserve1 != noreg) { spill_slots++; } |
635 if (preserve2 != noreg) { spill_slots++; } |
635 if (preserve2 != noreg) { spill_slots++; } |
687 // |
687 // |
688 void gen_write_ref_array_post_barrier(Register addr, Register count, Register tmp, Register preserve = noreg) { |
688 void gen_write_ref_array_post_barrier(Register addr, Register count, Register tmp, Register preserve = noreg) { |
689 BarrierSet* const bs = Universe::heap()->barrier_set(); |
689 BarrierSet* const bs = Universe::heap()->barrier_set(); |
690 |
690 |
691 switch (bs->kind()) { |
691 switch (bs->kind()) { |
692 case BarrierSet::G1SATBCTLogging: |
692 case BarrierSet::G1BarrierSet: |
693 { |
693 { |
694 int spill_slots = (preserve != noreg) ? 1 : 0; |
694 int spill_slots = (preserve != noreg) ? 1 : 0; |
695 const int frame_size = align_up(frame::abi_reg_args_size + spill_slots * BytesPerWord, frame::alignment_in_bytes); |
695 const int frame_size = align_up(frame::abi_reg_args_size + spill_slots * BytesPerWord, frame::alignment_in_bytes); |
696 |
696 |
697 __ save_LR_CR(R0); |
697 __ save_LR_CR(R0); |