Hi (John)! While writing some tests for the compiler I stumbled over this assert in the interpreter:
# Internal Error (/Users/twisti/mlvm/hotspot/src/share/vm/runtime/sharedRuntime.cpp:591), pid=19342, tid=2690041632 # Error: guarantee(cb->is_adapter_blob(),"exception happened outside interpreter, nmethods and vtable stubs (1)") The code that causes the assert is: static int foo() throws Throwable { return InvokeDynamic.<int>unknown(0); } static int target(int a0, int a1) { return a0 + a1; } private static CallSite bootstrapDynamic(Class caller, String name, MethodType type) { MethodHandle target = MethodHandles.lookup().findStatic(ia.class, "target", MethodType.make(int.class, int.class, int.class)); CallSite site = new CallSite(caller, name, type); site.setTarget(MethodHandles.insertArguments(target, 0, Integer.valueOf(10))); return site; } I think there is a typo in MethodHandles::generate_method_handle_stub(): diff --git a/src/cpu/x86/vm/methodHandles_x86.cpp b/src/cpu/x86/vm/methodHandles_x86.cpp --- a/src/cpu/x86/vm/methodHandles_x86.cpp +++ b/src/cpu/x86/vm/methodHandles_x86.cpp @@ -544,7 +544,6 @@ __ movl(Address(rax_argslot, Interpreter::stackElementSize()), rbx_temp); } #endif //_LP64 - break; } if (direct_to_method) { John, am I correct? -- Christian _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev