(original) (raw)

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

*** old/src/cpu/sparc/vm/templateTable_sparc.cpp Wed Sep 16 15:17:36 2015** --- new/src/cpu/sparc/vm/templateTable_sparc.cpp Wed Sep 16 15:17:35 2015


*** 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 **** --- 3491,3502 ---- Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4;

// Check for casting a NULL

! __ br_null_short(Otos_i, Assembler::pn, is_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 **** --- 3548,3559 ---- Register Roffset = G1_scratch; Register RobjKlass = O5; Register RspecifiedKlass = O4;

// Check for casting a NULL

! __ br_null_short(Otos_i, Assembler::pt, is_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