diff src/share/vm/runtime/javaCalls.cpp @ 5747:120820e30baa

added basic high-level interpreter support to HotSpot
author Christian Haeubl <haeubl@ssw.jku.at>
date Tue, 03 Jul 2012 16:56:40 +0200
parents 11ce128f8d28
children 8d0a6bceb112
line wrap: on
line diff
--- a/src/share/vm/runtime/javaCalls.cpp	Tue Jul 03 15:00:23 2012 +0200
+++ b/src/share/vm/runtime/javaCalls.cpp	Tue Jul 03 16:56:40 2012 +0200
@@ -39,6 +39,9 @@
 #include "runtime/mutexLocker.hpp"
 #include "runtime/signature.hpp"
 #include "runtime/stubRoutines.hpp"
+#ifdef HIGH_LEVEL_INTERPRETER
+# include "graal/graalVMToInterpreter.hpp"
+#endif
 #ifdef TARGET_OS_FAMILY_linux
 # include "thread_linux.inline.hpp"
 #endif
@@ -437,7 +440,13 @@
     ShouldNotReachHere();
 #endif
   }
-
+  
+#ifdef HIGH_LEVEL_INTERPRETER
+  if (thread->high_level_interpreter_in_vm() && !method->is_native() && Interpreter::contains(entry_point)) {
+    assert(nm == NULL || !nm->is_alive(), "otherwise nm should be invoked");
+    VMToInterpreter::execute(result, m, args, result->get_type(), thread);
+  } else
+#endif
   // do call
   { JavaCallWrapper link(method, receiver, result, CHECK);
     { HandleMark hm(thread);  // HandleMark used by HandleMarkCleaner
@@ -473,7 +482,6 @@
   }
 }
 
-
 //--------------------------------------------------------------------------------------
 // Implementation of JavaCallArguments