changeset 2033:b599a4c6c2df

7012766: assert(false) failed: DEBUG MESSAGE in MacroAssembler::debug32 Summary: Interpreter expects to see methodOop in rbx on method entry, which needs to be restored after call to profile_method. Reviewed-by: kvn, never
author iveresov
date Tue, 18 Jan 2011 18:00:06 -0800
parents 85c73c0edb06
children 02b6913287da bb2c2878f134
files src/cpu/x86/vm/templateInterpreter_x86_32.cpp src/cpu/x86/vm/templateInterpreter_x86_64.cpp
diffstat 2 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Tue Jan 18 17:10:03 2011 -0800
+++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Tue Jan 18 18:00:06 2011 -0800
@@ -1369,6 +1369,7 @@
       __ bind(profile_method);
       __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
       __ set_method_data_pointer_for_bcp();
+      __ get_method(rbx);
       __ jmp(profile_method_continue);
     }
     // Handle overflow of counter and compile method
--- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Tue Jan 18 17:10:03 2011 -0800
+++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Tue Jan 18 18:00:06 2011 -0800
@@ -1385,6 +1385,7 @@
       __ bind(profile_method);
       __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
       __ set_method_data_pointer_for_bcp();
+      __ get_method(rbx);
       __ jmp(profile_method_continue);
     }
     // Handle overflow of counter and compile method