< prev index next >
src/hotspot/cpu/sparc/gc/shared/barrierSetAssembler_sparc.cpp
Print this page
rev 50535 : [mq]: rename_IN_ROOT
rev 50536 : [mq]: rename_on_root
rev 50537 : [mq]: rename_on_heap
*** 30,47 ****
#define __ masm->
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register val, Address dst, Register tmp) {
! 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_ARRAY:
case T_OBJECT: {
! if (on_heap) {
if (dst.has_disp() && !Assembler::is_simm13(dst.disp())) {
assert(!dst.has_index(), "not supported yet");
__ set(dst.disp(), tmp);
dst = Address(dst.base(), tmp);
}
--- 30,47 ----
#define __ masm->
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register val, Address dst, Register tmp) {
! 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_ARRAY:
case T_OBJECT: {
! if (in_heap) {
if (dst.has_disp() && !Assembler::is_simm13(dst.disp())) {
assert(!dst.has_index(), "not supported yet");
__ set(dst.disp(), tmp);
dst = Address(dst.base(), tmp);
}
*** 55,83 ****
__ st(val, dst);
} else {
__ st_ptr(val, dst);
}
} else {
! assert(on_root, "why else?");
__ st_ptr(val, dst);
}
break;
}
default: Unimplemented();
}
}
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address src, Register dst, Register tmp) {
! 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_ARRAY:
case T_OBJECT: {
! if (on_heap) {
if (src.has_disp() && !Assembler::is_simm13(src.disp())) {
assert(!src.has_index(), "not supported yet");
__ set(src.disp(), tmp);
src = Address(src.base(), tmp);
}
--- 55,83 ----
__ st(val, dst);
} else {
__ st_ptr(val, dst);
}
} else {
! assert(in_native, "why else?");
__ st_ptr(val, dst);
}
break;
}
default: Unimplemented();
}
}
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address src, Register dst, Register tmp) {
! 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_ARRAY:
case T_OBJECT: {
! if (in_heap) {
if (src.has_disp() && !Assembler::is_simm13(src.disp())) {
assert(!src.has_index(), "not supported yet");
__ set(src.disp(), tmp);
src = Address(src.base(), tmp);
}
*** 90,100 ****
}
} else {
__ ld_ptr(src, dst);
}
} else {
! assert(on_root, "why else?");
__ ld_ptr(src, dst);
}
break;
}
default: Unimplemented();
--- 90,100 ----
}
} else {
__ ld_ptr(src, dst);
}
} else {
! assert(in_native, "why else?");
__ ld_ptr(src, dst);
}
break;
}
default: Unimplemented();
< prev index next >