< prev index next >
src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp
Print this page
*** 1676,1688 ****
Label not_null;
__ jccb(Assembler::notEqual, not_null);
// Object is null; update MDO and exit
Register mdo = klass_RInfo;
__ mov_metadata(mdo, md->constant_encoding());
! Address data_addr(mdo, md->byte_offset_of_slot(data, DataLayout::header_offset()));
! int header_bits = DataLayout::flag_mask_to_header_mask(BitData::null_seen_byte_constant());
! __ orl(data_addr, header_bits);
__ jmp(*obj_is_null);
__ bind(not_null);
} else {
__ jcc(Assembler::equal, *obj_is_null);
}
--- 1676,1688 ----
Label not_null;
__ jccb(Assembler::notEqual, not_null);
// Object is null; update MDO and exit
Register mdo = klass_RInfo;
__ mov_metadata(mdo, md->constant_encoding());
! Address data_addr(mdo, md->byte_offset_of_slot(data, DataLayout::flags_offset()));
! int header_bits = BitData::null_seen_byte_constant();
! __ orb(data_addr, header_bits);
__ jmp(*obj_is_null);
__ bind(not_null);
} else {
__ jcc(Assembler::equal, *obj_is_null);
}
*** 1822,1834 ****
Label not_null;
__ jccb(Assembler::notEqual, not_null);
// Object is null; update MDO and exit
Register mdo = klass_RInfo;
__ mov_metadata(mdo, md->constant_encoding());
! Address data_addr(mdo, md->byte_offset_of_slot(data, DataLayout::header_offset()));
! int header_bits = DataLayout::flag_mask_to_header_mask(BitData::null_seen_byte_constant());
! __ orl(data_addr, header_bits);
__ jmp(done);
__ bind(not_null);
} else {
__ jcc(Assembler::equal, done);
}
--- 1822,1834 ----
Label not_null;
__ jccb(Assembler::notEqual, not_null);
// Object is null; update MDO and exit
Register mdo = klass_RInfo;
__ mov_metadata(mdo, md->constant_encoding());
! Address data_addr(mdo, md->byte_offset_of_slot(data, DataLayout::flags_offset()));
! int header_bits = BitData::null_seen_byte_constant();
! __ orb(data_addr, header_bits);
__ jmp(done);
__ bind(not_null);
} else {
__ jcc(Assembler::equal, done);
}
< prev index next >