src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Mon Sep 16 11:46:12 2013
--- new/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Mon Sep 16 11:46:12 2013

*** 1722,1739 **** --- 1722,1731 ---- Rtmp1 = op->tmp3()->as_register(); select_different_registers(obj, dst, k_RInfo, klass_RInfo, Rtmp1); } assert_different_registers(obj, k_RInfo, klass_RInfo); if (!k->is_loaded()) { klass2reg_with_patching(k_RInfo, op->info_for_patch()); } else { #ifdef _LP64 __ mov_metadata(k_RInfo, k->constant_encoding()); #endif // _LP64 } assert(obj != k_RInfo, "must be different"); __ cmpptr(obj, (int32_t)NULL_WORD); if (op->should_profile()) { Label not_null; __ jccb(Assembler::notEqual, not_null);
*** 1746,1755 **** --- 1738,1755 ---- __ jmp(*obj_is_null); __ bind(not_null); } else { __ jcc(Assembler::equal, *obj_is_null); } + + if (!k->is_loaded()) { + klass2reg_with_patching(k_RInfo, op->info_for_patch()); + } else { + #ifdef _LP64 + __ mov_metadata(k_RInfo, k->constant_encoding()); + #endif // _LP64 + } __ verify_oop(obj); if (op->fast_check()) { // get object class // not a safepoint as obj null check happens earlier

src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File