diff -r 144b23411b51 src/cpu/sparc/vm/macroAssembler_sparc.cpp --- a/src/cpu/sparc/vm/macroAssembler_sparc.cpp Tue Nov 12 13:58:37 2013 +0100 +++ b/src/cpu/sparc/vm/macroAssembler_sparc.cpp Tue Nov 12 13:39:41 2013 -0800 @@ -1283,12 +1283,12 @@ BLOCK_COMMENT("verify_oop {"); char buffer[64]; -#ifdef COMPILER1 +// #ifdef COMPILER1 if (CommentedAssembly) { snprintf(buffer, sizeof(buffer), "verify_oop at %d", offset()); block_comment(buffer); } -#endif +// #endif const char* real_msg = NULL; { diff -r 144b23411b51 src/cpu/sparc/vm/templateTable_sparc.cpp --- a/src/cpu/sparc/vm/templateTable_sparc.cpp Tue Nov 12 13:58:37 2013 +0100 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp Tue Nov 12 13:39:41 2013 -0800 @@ -3216,17 +3216,26 @@ const Register Rscratch = G3_scratch; prepare_invoke(byte_no, G5_method, Rret, G4_mtype, O0_recv); + __ verify_oop(O0_recv); __ null_check(O0_recv); // G4: MethodType object (from cpool->resolved_references[f1], if necessary) // G5: MH.invokeExact_MT method (from f2) // Note: G4_mtype is already pushed (if necessary) by prepare_invoke + Label L_no_such_method; // do the call + __ load_ptr(0, G4_mtype); + __ br_null_short(G4_mtype, Assembler::pn, L_no_such_method); + __ verify_oop(G4_mtype); __ profile_final_call(O4); // FIXME: profile the LambdaForm also __ call_from_interpreter(Rscratch, Gargs, Rret); + __ bind(L_no_such_method); + AddressLiteral ame(StubRoutines::throw_AbstractMethodError_entry()); + __ jump_to(ame, Rscratch); + __ delayed()->nop(); } diff -r 144b23411b51 src/share/vm/code/nmethod.cpp --- a/src/share/vm/code/nmethod.cpp Tue Nov 12 13:58:37 2013 +0100 +++ b/src/share/vm/code/nmethod.cpp Tue Nov 12 13:39:41 2013 -0800 @@ -511,7 +511,7 @@ basic_lock_owner_sp_offset, basic_lock_sp_offset, oop_maps); NOT_PRODUCT(if (nm != NULL) nmethod_stats.note_native_nmethod(nm)); - if (PrintAssembly && nm != NULL) { + if (nm != NULL && (PrintAssembly || CompilerOracle::should_print(method))) { Disassembler::decode(nm); } } @@ -905,6 +905,7 @@ || CompilerOracle::has_option_string(_method, "PrintNMethods"); if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) { print_nmethod(printnmethods); + tty->print("PRINTN: %s", _method->name_and_sig_as_C_string()); } }