Mercurial > hg > graal-compiler
diff src/cpu/x86/vm/templateTable_x86_64.cpp @ 726:be93aad57795
6655646: dynamic languages need dynamically linked call sites
Summary: invokedynamic instruction (JSR 292 RI)
Reviewed-by: twisti, never
author | jrose |
---|---|
date | Tue, 21 Apr 2009 23:21:04 -0700 |
parents | 9adddb8c0fc8 |
children | bd02caa94611 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateTable_x86_64.cpp Mon Apr 20 14:48:03 2009 -0700 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp Tue Apr 21 23:21:04 2009 -0700 @@ -3058,6 +3058,23 @@ return; } +void TemplateTable::invokedynamic(int byte_no) { + transition(vtos, vtos); + + if (!EnableInvokeDynamic) { + // We should not encounter this bytecode if !EnableInvokeDynamic. + // The verifier will stop it. However, if we get past the verifier, + // this will stop the thread in a reasonable way, without crashing the JVM. + __ call_VM(noreg, CAST_FROM_FN_PTR(address, + InterpreterRuntime::throw_IncompatibleClassChangeError)); + // the call_VM checks for exception, so we should never return here. + __ should_not_reach_here(); + return; + } + + __ stop("invokedynamic NYI");//6815692// +} + //----------------------------------------------------------------------------- // Allocation