changeset 24131:0e0a4ebf09d7

set_method_data_pointer_for_bcp must be guarded by ProfileInterpreter
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Wed, 19 Apr 2017 09:00:56 -0700
parents 0386b21ed2b3
children 42cc0c2dd4a7
files src/cpu/x86/vm/templateInterpreter_x86_32.cpp src/cpu/x86/vm/templateInterpreter_x86_64.cpp src/cpu/x86/vm/templateTable_x86_32.cpp src/cpu/x86/vm/templateTable_x86_64.cpp
diffstat 4 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Tue Apr 18 17:14:58 2017 +0200
+++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Wed Apr 19 09:00:56 2017 -0700
@@ -443,7 +443,9 @@
   __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::frequency_counter_overflow), rax);
 
   __ movptr(rbx, Address(rbp, method_offset));   // restore Method*
-  __ set_method_data_pointer_for_bcp();
+  if (ProfileInterpreter) {
+    __ set_method_data_pointer_for_bcp();
+  }
 
   // Preserve invariant that rsi/rdi contain bcp/locals of sender frame
   // and jump to the interpreted entry.
--- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Tue Apr 18 17:14:58 2017 +0200
+++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp	Wed Apr 19 09:00:56 2017 -0700
@@ -413,7 +413,9 @@
              c_rarg1);
 
   __ movptr(rbx, Address(rbp, method_offset));   // restore Method*
-  __ set_method_data_pointer_for_bcp();
+  if (ProfileInterpreter) {
+    __ set_method_data_pointer_for_bcp();
+  }
   // Preserve invariant that r13/r14 contain bcp/locals of sender frame
   // and jump to the interpreted entry.
   __ jmp(*do_continue, relocInfo::none);
--- a/src/cpu/x86/vm/templateTable_x86_32.cpp	Tue Apr 18 17:14:58 2017 +0200
+++ b/src/cpu/x86/vm/templateTable_x86_32.cpp	Wed Apr 19 09:00:56 2017 -0700
@@ -1770,7 +1770,9 @@
 
       // Load the MDO in case it was created by frequency_counter_overflow
       __ bind(maybe_load_mdp);
-      __ set_method_data_pointer_for_bcp();
+      if (ProfileInterpreter) {
+        __ set_method_data_pointer_for_bcp();
+      }
       __ jmp(dispatch);
     }
   }
--- a/src/cpu/x86/vm/templateTable_x86_64.cpp	Tue Apr 18 17:14:58 2017 +0200
+++ b/src/cpu/x86/vm/templateTable_x86_64.cpp	Wed Apr 19 09:00:56 2017 -0700
@@ -1803,7 +1803,9 @@
 
       // Load the MDO in case it was created by frequency_counter_overflow
       __ bind(maybe_load_mdp);
-      __ set_method_data_pointer_for_bcp();
+      if (ProfileInterpreter) {
+        __ set_method_data_pointer_for_bcp();
+      }
       __ jmp(dispatch);
     }
   }