< prev index next >

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

Print this page
rev 50535 : [mq]: rename_IN_ROOT
rev 50536 : [mq]: rename_on_root
rev 50537 : [mq]: rename_on_heap

*** 31,47 **** void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Register dst, Address src, Register tmp1, Register tmp_thread) { // LR is live. It must be saved around calls. ! bool on_heap = (decorators & IN_HEAP) != 0; ! bool on_root = (decorators & IN_ROOT) != 0; bool oop_not_null = (decorators & OOP_NOT_NULL) != 0; switch (type) { case T_OBJECT: case T_ARRAY: { ! if (on_heap) { if (UseCompressedOops) { __ ldrw(dst, src); if (oop_not_null) { __ decode_heap_oop_not_null(dst); } else { --- 31,47 ---- void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Register dst, Address src, Register tmp1, Register tmp_thread) { // LR is live. It must be saved around calls. ! bool in_heap = (decorators & IN_HEAP) != 0; ! bool in_native = (decorators & IN_NATIVE) != 0; bool oop_not_null = (decorators & OOP_NOT_NULL) != 0; switch (type) { case T_OBJECT: case T_ARRAY: { ! if (in_heap) { if (UseCompressedOops) { __ ldrw(dst, src); if (oop_not_null) { __ decode_heap_oop_not_null(dst); } else {
*** 49,59 **** } } else { __ ldr(dst, src); } } else { ! assert(on_root, "why else?"); __ ldr(dst, src); } break; } case T_BOOLEAN: __ load_unsigned_byte (dst, src); break; --- 49,59 ---- } } else { __ ldr(dst, src); } } else { ! assert(in_native, "why else?"); __ ldr(dst, src); } break; } case T_BOOLEAN: __ load_unsigned_byte (dst, src); break;
*** 69,96 **** } } void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Address dst, Register val, Register tmp1, Register tmp2) { ! bool on_heap = (decorators & IN_HEAP) != 0; ! bool on_root = (decorators & IN_ROOT) != 0; switch (type) { case T_OBJECT: case T_ARRAY: { val = val == noreg ? zr : val; ! if (on_heap) { if (UseCompressedOops) { assert(!dst.uses(val), "not enough registers"); if (val != zr) { __ encode_heap_oop(val); } __ strw(val, dst); } else { __ str(val, dst); } } else { ! assert(on_root, "why else?"); __ str(val, dst); } break; } case T_BOOLEAN: --- 69,96 ---- } } void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Address dst, Register val, Register tmp1, Register tmp2) { ! bool in_heap = (decorators & IN_HEAP) != 0; ! bool in_native = (decorators & IN_NATIVE) != 0; switch (type) { case T_OBJECT: case T_ARRAY: { val = val == noreg ? zr : val; ! if (in_heap) { if (UseCompressedOops) { assert(!dst.uses(val), "not enough registers"); if (val != zr) { __ encode_heap_oop(val); } __ strw(val, dst); } else { __ str(val, dst); } } else { ! assert(in_native, "why else?"); __ str(val, dst); } break; } case T_BOOLEAN:
< prev index next >