equal
deleted
inserted
replaced
315 } |
315 } |
316 } |
316 } |
317 |
317 |
318 void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
318 void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
319 Register dst, Address src, Register tmp1, Register tmp_thread) { |
319 Register dst, Address src, Register tmp1, Register tmp_thread) { |
320 bool on_oop = type == T_OBJECT || type == T_ARRAY; |
320 bool on_oop = is_reference_type(type); |
321 bool not_in_heap = (decorators & IN_NATIVE) != 0; |
321 bool not_in_heap = (decorators & IN_NATIVE) != 0; |
322 bool on_weak = (decorators & ON_WEAK_OOP_REF) != 0; |
322 bool on_weak = (decorators & ON_WEAK_OOP_REF) != 0; |
323 bool on_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0; |
323 bool on_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0; |
324 bool on_reference = on_weak || on_phantom; |
324 bool on_reference = on_weak || on_phantom; |
325 bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0; |
325 bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0; |
350 } |
350 } |
351 } |
351 } |
352 |
352 |
353 void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
353 void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, |
354 Address dst, Register val, Register tmp1, Register tmp2) { |
354 Address dst, Register val, Register tmp1, Register tmp2) { |
355 bool on_oop = type == T_OBJECT || type == T_ARRAY; |
355 bool on_oop = is_reference_type(type); |
356 if (!on_oop) { |
356 if (!on_oop) { |
357 BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2); |
357 BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2); |
358 return; |
358 return; |
359 } |
359 } |
360 |
360 |