< prev index next >
src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp
Print this page
rev 50535 : [mq]: rename_IN_ROOT
rev 50536 : [mq]: rename_on_root
rev 50537 : [mq]: rename_on_heap
*** 31,50 ****
#define __ masm->
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register base, RegisterOrConstant ind_or_offs, Register val,
Register tmp1, Register tmp2, Register tmp3, bool needs_frame) {
! bool on_heap = (decorators & IN_HEAP) != 0;
! bool on_root = (decorators & IN_ROOT) != 0;
bool not_null = (decorators & OOP_NOT_NULL) != 0;
! assert(on_heap || on_root, "where?");
assert_different_registers(base, val, tmp1, tmp2, R0);
switch (type) {
case T_ARRAY:
case T_OBJECT: {
! if (UseCompressedOops && on_heap) {
Register co = tmp1;
if (val == noreg) {
__ li(co, 0);
} else {
co = not_null ? __ encode_heap_oop_not_null(tmp1, val) : __ encode_heap_oop(tmp1, val);
--- 31,50 ----
#define __ masm->
void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register base, RegisterOrConstant ind_or_offs, Register val,
Register tmp1, Register tmp2, Register tmp3, bool needs_frame) {
! bool in_heap = (decorators & IN_HEAP) != 0;
! bool in_native = (decorators & IN_NATIVE) != 0;
bool not_null = (decorators & OOP_NOT_NULL) != 0;
! assert(in_heap || in_native, "where?");
assert_different_registers(base, val, tmp1, tmp2, R0);
switch (type) {
case T_ARRAY:
case T_OBJECT: {
! if (UseCompressedOops && in_heap) {
Register co = tmp1;
if (val == noreg) {
__ li(co, 0);
} else {
co = not_null ? __ encode_heap_oop_not_null(tmp1, val) : __ encode_heap_oop(tmp1, val);
*** 64,83 ****
}
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register base, RegisterOrConstant ind_or_offs, Register dst,
Register tmp1, Register tmp2, bool needs_frame, Label *L_handle_null) {
! bool on_heap = (decorators & IN_HEAP) != 0;
! bool on_root = (decorators & IN_ROOT) != 0;
bool not_null = (decorators & OOP_NOT_NULL) != 0;
! assert(on_heap || on_root, "where?");
assert_different_registers(ind_or_offs.register_or_noreg(), dst, R0);
switch (type) {
case T_ARRAY:
case T_OBJECT: {
! if (UseCompressedOops && on_heap) {
if (L_handle_null != NULL) { // Label provided.
__ lwz(dst, ind_or_offs, base);
__ cmpwi(CCR0, dst, 0);
__ beq(CCR0, *L_handle_null);
__ decode_heap_oop_not_null(dst);
--- 64,83 ----
}
void BarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register base, RegisterOrConstant ind_or_offs, Register dst,
Register tmp1, Register tmp2, bool needs_frame, Label *L_handle_null) {
! bool in_heap = (decorators & IN_HEAP) != 0;
! bool in_native = (decorators & IN_NATIVE) != 0;
bool not_null = (decorators & OOP_NOT_NULL) != 0;
! assert(in_heap || in_native, "where?");
assert_different_registers(ind_or_offs.register_or_noreg(), dst, R0);
switch (type) {
case T_ARRAY:
case T_OBJECT: {
! if (UseCompressedOops && in_heap) {
if (L_handle_null != NULL) { // Label provided.
__ lwz(dst, ind_or_offs, base);
__ cmpwi(CCR0, dst, 0);
__ beq(CCR0, *L_handle_null);
__ decode_heap_oop_not_null(dst);
< prev index next >