< prev index next >
src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp
Print this page
rev 50535 : [mq]: rename_IN_ROOT
rev 50536 : [mq]: rename_on_root
rev 50537 : [mq]: rename_on_heap
*** 27,53 ****
#define __ masm->
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register dst, Address src, Register tmp1, Register tmp2, Register tmp3) {
! bool on_heap = (decorators & IN_HEAP) != 0;
! bool on_root = (decorators & IN_ROOT) != 0;
switch (type) {
case T_OBJECT:
case T_ARRAY: {
! if (on_heap) {
#ifdef AARCH64
if (UseCompressedOops) {
__ ldr_w(dst, src);
__ decode_heap_oop(dst);
} else
#endif // AARCH64
{
__ ldr(dst, src);
}
} else {
! assert(on_root, "why else?");
__ ldr(dst, src);
}
break;
}
default: Unimplemented();
--- 27,53 ----
#define __ masm->
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register dst, Address src, Register tmp1, Register tmp2, Register tmp3) {
! bool in_heap = (decorators & IN_HEAP) != 0;
! bool in_native = (decorators & IN_NATIVE) != 0;
switch (type) {
case T_OBJECT:
case T_ARRAY: {
! if (in_heap) {
#ifdef AARCH64
if (UseCompressedOops) {
__ ldr_w(dst, src);
__ decode_heap_oop(dst);
} else
#endif // AARCH64
{
__ ldr(dst, src);
}
} else {
! assert(in_native, "why else?");
__ ldr(dst, src);
}
break;
}
default: Unimplemented();
*** 55,70 ****
}
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address obj, Register val, Register tmp1, Register tmp2, Register tmp3, bool is_null) {
! bool on_heap = (decorators & IN_HEAP) != 0;
! bool on_root = (decorators & IN_ROOT) != 0;
switch (type) {
case T_OBJECT:
case T_ARRAY: {
! if (on_heap) {
#ifdef AARCH64
if (UseCompressedOops) {
assert(!dst.uses(src), "not enough registers");
if (!is_null) {
__ encode_heap_oop(src);
--- 55,70 ----
}
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address obj, Register val, Register tmp1, Register tmp2, Register tmp3, bool is_null) {
! bool in_heap = (decorators & IN_HEAP) != 0;
! bool in_native = (decorators & IN_NATIVE) != 0;
switch (type) {
case T_OBJECT:
case T_ARRAY: {
! if (in_heap) {
#ifdef AARCH64
if (UseCompressedOops) {
assert(!dst.uses(src), "not enough registers");
if (!is_null) {
__ encode_heap_oop(src);
*** 74,84 ****
#endif // AARCH64
{
__ str(val, obj);
}
} else {
! assert(on_root, "why else?");
__ str(val, obj);
}
break;
}
default: Unimplemented();
--- 74,84 ----
#endif // AARCH64
{
__ str(val, obj);
}
} else {
! assert(in_native, "why else?");
__ str(val, obj);
}
break;
}
default: Unimplemented();
< prev index next >