< 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 >