Mercurial > hg > truffle
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;