< prev index next >

src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.cpp

Print this page




  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 (type == T_OBJECT || type == T_ARRAY) {
  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 (type == T_OBJECT || type == T_ARRAY) {
  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 }
< prev index next >