diff src/share/vm/interpreter/interpreter.cpp @ 9025:ff5a32117e02

Implement fast invocation of installed code (direct tail call to the target machine code address).
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 12 Apr 2013 01:53:52 +0200
parents b9a918201d47
children c6a1ffc707ff
line wrap: on
line diff
--- a/src/share/vm/interpreter/interpreter.cpp	Thu Apr 11 17:48:30 2013 +0200
+++ b/src/share/vm/interpreter/interpreter.cpp	Fri Apr 12 01:53:52 2013 +0200
@@ -188,6 +188,9 @@
   // Method handle primitive?
   if (m->is_method_handle_intrinsic()) {
     vmIntrinsics::ID id = m->intrinsic_id();
+    if (id == vmIntrinsics::_CompilerToVMImpl_executeCompiledMethod) {
+      return AbstractInterpreter::execute_compiled_method;
+    }
     assert(MethodHandles::is_signature_polymorphic(id), "must match an intrinsic");
     MethodKind kind = (MethodKind)( method_handle_invoke_FIRST +
                                     ((int)id - vmIntrinsics::FIRST_MH_SIG_POLY) );
@@ -287,6 +290,7 @@
     case zerolocals_synchronized: tty->print("zerolocals_synchronized"); break;
     case native                 : tty->print("native"                 ); break;
     case native_synchronized    : tty->print("native_synchronized"    ); break;
+    case execute_compiled_method: tty->print("execute_compiled_method"); break;
     case empty                  : tty->print("empty"                  ); break;
     case accessor               : tty->print("accessor"               ); break;
     case abstract               : tty->print("abstract"               ); break;