src/cpu/sparc/vm/templateTable_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Cdiff src/cpu/sparc/vm/templateTable_sparc.cpp

src/cpu/sparc/vm/templateTable_sparc.cpp

Print this page

        

*** 2947,2962 **** --- 2947,2966 ---- } } void TemplateTable::generate_vtable_call(Register Rrecv, Register Rindex, Register Rret) { + Register Rtemp = G4_scratch; Register Rcall = Rindex; assert_different_registers(Rcall, G5_method, Gargs, Rret); // get target Method* & entry point __ lookup_virtual_method(Rrecv, Rindex, G5_method); __ profile_arguments_type(G5_method, Rcall, Gargs, true); + #if INCLUDE_JVMCI + __ profile_called_method(G5_method, Rtemp); + #endif __ call_from_interpreter(Rcall, Gargs, Rret); } void TemplateTable::invokevirtual(int byte_no) { transition(vtos, vtos);
*** 3209,3218 **** --- 3213,3225 ---- Register Rcall = Rinterface; assert_different_registers(Rcall, G5_method, Gargs, Rret); __ profile_arguments_type(G5_method, Rcall, Gargs, true); + #if INCLUDE_JVMCI + __ profile_called_method(G5_method, Rscratch); + #endif __ call_from_interpreter(Rcall, Gargs, Rret); } void TemplateTable::invokehandle(int byte_no) { transition(vtos, vtos);
*** 3484,3494 **** Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4; // Check for casting a NULL ! __ br_null_short(Otos_i, Assembler::pn, is_null); // Get value klass in RobjKlass __ load_klass(Otos_i, RobjKlass); // get value klass // Get constant pool tag --- 3491,3502 ---- Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4; // Check for casting a NULL ! __ br_null(Otos_i, false, Assembler::pn, is_null); ! __ delayed()->nop(); // Get value klass in RobjKlass __ load_klass(Otos_i, RobjKlass); // get value klass // Get constant pool tag
*** 3540,3550 **** Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4; // Check for casting a NULL ! __ br_null_short(Otos_i, Assembler::pt, is_null); // Get value klass in RobjKlass __ load_klass(Otos_i, RobjKlass); // get value klass // Get constant pool tag --- 3548,3559 ---- Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4; // Check for casting a NULL ! __ br_null(Otos_i, false, Assembler::pt, is_null); ! __ delayed()->nop(); // Get value klass in RobjKlass __ load_klass(Otos_i, RobjKlass); // get value klass // Get constant pool tag
src/cpu/sparc/vm/templateTable_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File