Mercurial > hg > truffle
diff src/cpu/sparc/vm/templateTable_sparc.cpp @ 10458:63e44cdabb91
fixed SPARC interpreter
author | twisti |
---|---|
date | Thu, 20 Jun 2013 10:56:34 -0700 |
parents | 9500809ceead |
children | 6b0fd0964b87 |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/templateTable_sparc.cpp Thu Jun 20 10:55:42 2013 -0700 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp Thu Jun 20 10:56:34 2013 -0700 @@ -2983,6 +2983,9 @@ // get target Method* & entry point __ lookup_virtual_method(Rrecv, Rindex, G5_method); +#ifdef GRAAL + __ profile_called_method(G5_method, Rtemp); +#endif __ call_from_interpreter(Rcall, Gargs, Rret); } @@ -3232,6 +3235,10 @@ Register Rcall = Rinterface; assert_different_registers(Rcall, G5_method, Gargs, Rret); +#ifdef GRAAL + __ profile_called_method(G5_method, Rscratch); +#endif + __ call_from_interpreter(Rcall, Gargs, Rret); } @@ -3524,7 +3531,8 @@ 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 @@ -3580,7 +3588,8 @@ 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