src/cpu/sparc/vm/templateTable_sparc.cpp

changeset 6223
add2caa66e7e
parent 6039
bd3237e0e18d
child 6876
710a3c8b516e
child 8368
32b682649973
     1.1 --- a/src/cpu/sparc/vm/templateTable_sparc.cpp	Tue Jan 14 12:44:12 2014 +0100
     1.2 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp	Tue Jan 14 14:51:47 2014 +0100
     1.3 @@ -2942,12 +2942,12 @@
     1.4  
     1.5  
     1.6  void TemplateTable::generate_vtable_call(Register Rrecv, Register Rindex, Register Rret) {
     1.7 -  Register Rtemp = G4_scratch;
     1.8    Register Rcall = Rindex;
     1.9    assert_different_registers(Rcall, G5_method, Gargs, Rret);
    1.10  
    1.11    // get target Method* & entry point
    1.12    __ lookup_virtual_method(Rrecv, Rindex, G5_method);
    1.13 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
    1.14    __ call_from_interpreter(Rcall, Gargs, Rret);
    1.15  }
    1.16  
    1.17 @@ -3022,6 +3022,7 @@
    1.18    __ null_check(O0);
    1.19  
    1.20    __ profile_final_call(O4);
    1.21 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, true);
    1.22  
    1.23    // get return address
    1.24    AddressLiteral table(Interpreter::invoke_return_entry_table());
    1.25 @@ -3051,6 +3052,7 @@
    1.26  
    1.27    // do the call
    1.28    __ profile_call(O4);
    1.29 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
    1.30    __ call_from_interpreter(Rscratch, Gargs, Rret);
    1.31  }
    1.32  
    1.33 @@ -3066,6 +3068,7 @@
    1.34  
    1.35    // do the call
    1.36    __ profile_call(O4);
    1.37 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
    1.38    __ call_from_interpreter(Rscratch, Gargs, Rret);
    1.39  }
    1.40  
    1.41 @@ -3091,6 +3094,7 @@
    1.42    // do the call - the index (f2) contains the Method*
    1.43    assert_different_registers(G5_method, Gargs, Rcall);
    1.44    __ mov(Rindex, G5_method);
    1.45 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
    1.46    __ call_from_interpreter(Rcall, Gargs, Rret);
    1.47    __ bind(notFinal);
    1.48  
    1.49 @@ -3197,6 +3201,7 @@
    1.50    Register Rcall = Rinterface;
    1.51    assert_different_registers(Rcall, G5_method, Gargs, Rret);
    1.52  
    1.53 +  __ profile_arguments_type(G5_method, Rcall, Gargs, true);
    1.54    __ call_from_interpreter(Rcall, Gargs, Rret);
    1.55  }
    1.56  
    1.57 @@ -3226,6 +3231,7 @@
    1.58    // do the call
    1.59    __ verify_oop(G4_mtype);
    1.60    __ profile_final_call(O4);  // FIXME: profile the LambdaForm also
    1.61 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, true);
    1.62    __ call_from_interpreter(Rscratch, Gargs, Rret);
    1.63  }
    1.64  
    1.65 @@ -3262,6 +3268,7 @@
    1.66  
    1.67    // do the call
    1.68    __ verify_oop(G4_callsite);
    1.69 +  __ profile_arguments_type(G5_method, Rscratch, Gargs, false);
    1.70    __ call_from_interpreter(Rscratch, Gargs, Rret);
    1.71  }
    1.72  

mercurial