equal
deleted
inserted
replaced
45 |
45 |
46 void ShenandoahBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop, |
46 void ShenandoahBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop, |
47 Register src, Register dst, Register count, RegSet saved_regs) { |
47 Register src, Register dst, Register count, RegSet saved_regs) { |
48 if (is_oop) { |
48 if (is_oop) { |
49 bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0; |
49 bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0; |
50 if (ShenandoahSATBBarrier && !dest_uninitialized && !ShenandoahHeap::heap()->heuristics()->can_do_traversal_gc()) { |
50 if (ShenandoahSATBBarrier && !dest_uninitialized) { |
51 |
51 |
52 Label done; |
52 Label done; |
53 |
53 |
54 // Avoid calling runtime if count == 0 |
54 // Avoid calling runtime if count == 0 |
55 __ cbz(count, done); |
55 __ cbz(count, done); |