< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page




3974     bs->BarrierSetAssembler::load_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3975   } else {
3976     bs->load_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3977   }
3978 }
3979 
3980 void MacroAssembler::access_store_at(BasicType type, DecoratorSet decorators,
3981                                      Address dst, Register src,
3982                                      Register tmp1, Register thread_tmp) {
3983   BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
3984   decorators = AccessInternal::decorator_fixup(decorators);
3985   bool as_raw = (decorators & AS_RAW) != 0;
3986   if (as_raw) {
3987     bs->BarrierSetAssembler::store_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3988   } else {
3989     bs->store_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3990   }
3991 }
3992 
3993 void MacroAssembler::resolve(DecoratorSet decorators, Register obj) {
3994   if ((decorators & ACCESS_READ) == 0) {
3995     decorators |= ACCESS_WRITE;

3996   }
3997   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
3998   return bs->resolve(this, decorators, obj);
3999 }
4000 
4001 void MacroAssembler::load_heap_oop(Register dst, Address src, Register tmp1,
4002                                    Register thread_tmp, DecoratorSet decorators) {
4003   access_load_at(T_OBJECT, IN_HEAP | decorators, dst, src, tmp1, thread_tmp);
4004 }
4005 
4006 void MacroAssembler::load_heap_oop_not_null(Register dst, Address src, Register tmp1,
4007                                             Register thread_tmp, DecoratorSet decorators) {
4008   access_load_at(T_OBJECT, IN_HEAP | IS_NOT_NULL | decorators, dst, src, tmp1, thread_tmp);
4009 }
4010 
4011 void MacroAssembler::store_heap_oop(Address dst, Register src, Register tmp1,
4012                                     Register thread_tmp, DecoratorSet decorators) {
4013   access_store_at(T_OBJECT, IN_HEAP | decorators, dst, src, tmp1, thread_tmp);
4014 }
4015 




3974     bs->BarrierSetAssembler::load_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3975   } else {
3976     bs->load_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3977   }
3978 }
3979 
3980 void MacroAssembler::access_store_at(BasicType type, DecoratorSet decorators,
3981                                      Address dst, Register src,
3982                                      Register tmp1, Register thread_tmp) {
3983   BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
3984   decorators = AccessInternal::decorator_fixup(decorators);
3985   bool as_raw = (decorators & AS_RAW) != 0;
3986   if (as_raw) {
3987     bs->BarrierSetAssembler::store_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3988   } else {
3989     bs->store_at(this, decorators, type, dst, src, tmp1, thread_tmp);
3990   }
3991 }
3992 
3993 void MacroAssembler::resolve(DecoratorSet decorators, Register obj) {
3994   // Use stronger ACCESS_WRITE|ACCESS_READ by default.
3995   if ((decorators & (ACCESS_READ | ACCESS_WRITE)) == 0) {
3996     decorators |= ACCESS_READ | ACCESS_WRITE;
3997   }
3998   BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler();
3999   return bs->resolve(this, decorators, obj);
4000 }
4001 
4002 void MacroAssembler::load_heap_oop(Register dst, Address src, Register tmp1,
4003                                    Register thread_tmp, DecoratorSet decorators) {
4004   access_load_at(T_OBJECT, IN_HEAP | decorators, dst, src, tmp1, thread_tmp);
4005 }
4006 
4007 void MacroAssembler::load_heap_oop_not_null(Register dst, Address src, Register tmp1,
4008                                             Register thread_tmp, DecoratorSet decorators) {
4009   access_load_at(T_OBJECT, IN_HEAP | IS_NOT_NULL | decorators, dst, src, tmp1, thread_tmp);
4010 }
4011 
4012 void MacroAssembler::store_heap_oop(Address dst, Register src, Register tmp1,
4013                                     Register thread_tmp, DecoratorSet decorators) {
4014   access_store_at(T_OBJECT, IN_HEAP | decorators, dst, src, tmp1, thread_tmp);
4015 }
4016 


< prev index next >