28
29 #define __ masm->
30
31 void ModRefBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
32 Register src, Register dst, Register count, RegSet saved_regs) {
33
34 if (is_oop) {
35 gen_write_ref_array_pre_barrier(masm, decorators, dst, count, saved_regs);
36 }
37 }
38
39 void ModRefBarrierSetAssembler::arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
40 Register start, Register count, Register tmp,
41 RegSet saved_regs) {
42 if (is_oop) {
43 gen_write_ref_array_post_barrier(masm, decorators, start, count, tmp, saved_regs);
44 }
45 }
46
47 void ModRefBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
48 Address dst, Register val, Register tmp1, Register tmp2) {
49 if (is_reference_type(type)) {
50 oop_store_at(masm, decorators, type, dst, val, tmp1, tmp2);
51 } else {
52 BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2);
53 }
54 }
|
28
29 #define __ masm->
30
31 void ModRefBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
32 Register src, Register dst, Register count, RegSet saved_regs) {
33
34 if (is_oop) {
35 gen_write_ref_array_pre_barrier(masm, decorators, dst, count, saved_regs);
36 }
37 }
38
39 void ModRefBarrierSetAssembler::arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
40 Register start, Register count, Register tmp,
41 RegSet saved_regs) {
42 if (is_oop) {
43 gen_write_ref_array_post_barrier(masm, decorators, start, count, tmp, saved_regs);
44 }
45 }
46
47 void ModRefBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
48 Address dst, Register val, Register tmp1, Register tmp2, Register tmp3) {
49 if (is_reference_type(type)) {
50 oop_store_at(masm, decorators, type, dst, val, tmp1, tmp2, tmp3);
51 } else {
52 BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2, tmp3);
53 }
54 }
|