src/cpu/x86/vm/sharedRuntime_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6859338 Cdiff src/cpu/x86/vm/sharedRuntime_x86_64.cpp

src/cpu/x86/vm/sharedRuntime_x86_64.cpp

Print this page

        

*** 1300,1325 **** // as far as the interpreter and the compiler(s) are concerned. const Register ic_reg = rax; const Register receiver = j_rarg0; - const Register tmp = rdx; Label ok; Label exception_pending; __ verify_oop(receiver); ! __ push(tmp); // spill (any other registers free here???) ! __ load_klass(tmp, receiver); ! __ cmpq(ic_reg, tmp); __ jcc(Assembler::equal, ok); - __ pop(tmp); __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub())); __ bind(ok); - __ pop(tmp); // Verified entry point must be aligned __ align(8); int vep_offset = ((intptr_t)__ pc()) - start; --- 1300,1322 ---- // as far as the interpreter and the compiler(s) are concerned. const Register ic_reg = rax; const Register receiver = j_rarg0; Label ok; Label exception_pending; + assert_different_registers(ic_reg, receiver, rscratch1); __ verify_oop(receiver); ! __ load_klass(rscratch1, receiver); ! __ cmpq(ic_reg, rscratch1); __ jcc(Assembler::equal, ok); __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub())); __ bind(ok); // Verified entry point must be aligned __ align(8); int vep_offset = ((intptr_t)__ pc()) - start;
src/cpu/x86/vm/sharedRuntime_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File