< prev index next >

src/hotspot/cpu/x86/templateTable_x86.cpp

Print this page

        

*** 445,455 **** // If we just called the VM, it already did the mapping for us, // but it's harmless to retry. Label notNull; ExternalAddress null_sentinel((address)Universe::the_null_sentinel_addr()); __ movptr(tmp, null_sentinel); ! __ cmpptr(tmp, result); __ jccb(Assembler::notEqual, notNull); __ xorptr(result, result); // NULL object reference __ bind(notNull); } --- 445,455 ---- // If we just called the VM, it already did the mapping for us, // but it's harmless to retry. Label notNull; ExternalAddress null_sentinel((address)Universe::the_null_sentinel_addr()); __ movptr(tmp, null_sentinel); ! __ cmpoop(tmp, result); __ jccb(Assembler::notEqual, notNull); __ xorptr(result, result); // NULL object reference __ bind(notNull); }
*** 4355,4364 **** --- 4355,4366 ---- transition(atos, vtos); // check for NULL object __ null_check(rax); + __ resolve_for_write(IS_NOT_NULL, rax); + const Address monitor_block_top( rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize); const Address monitor_block_bot( rbp, frame::interpreter_frame_initial_sp_offset * wordSize); const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
*** 4452,4461 **** --- 4454,4465 ---- transition(atos, vtos); // check for NULL object __ null_check(rax); + __ resolve_for_write(IS_NOT_NULL, rax); + const Address monitor_block_top( rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize); const Address monitor_block_bot( rbp, frame::interpreter_frame_initial_sp_offset * wordSize); const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
< prev index next >