diff src/share/vm/graal/graalRuntime.cpp @ 16691:dd8449afc086

GNFI: move GNFI interfaces to oracle.nfi - interface does not depend on graal
author Matthias Grimmer <grimmer@ssw.jku.at>
date Tue, 05 Aug 2014 15:58:11 +0200
parents 4d0d1dc5db00
children 91e7d77cfb81
line wrap: on
line diff
--- a/src/share/vm/graal/graalRuntime.cpp	Tue Aug 05 12:34:55 2014 +0200
+++ b/src/share/vm/graal/graalRuntime.cpp	Tue Aug 05 15:58:11 2014 +0200
@@ -664,6 +664,18 @@
   return JNIHandles::make_local((oop) result.get_jobject());
 JVM_END
 
+// private static NativeFunctionInterfaceRuntime.createInterface()
+JVM_ENTRY(jobject, JVM_CreateNativeFunctionInterface(JNIEnv *env, jclass c))
+  TempNewSymbol name = SymbolTable::new_symbol("com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend", CHECK_NULL);
+  KlassHandle klass = GraalRuntime::resolve_or_fail(name, CHECK_NULL);
+
+  TempNewSymbol makeInstance = SymbolTable::new_symbol("createNativeFunctionInterface", CHECK_NULL);
+  TempNewSymbol sig = SymbolTable::new_symbol("()Lcom/oracle/nfi/api/NativeFunctionInterface;", CHECK_NULL);
+  JavaValue result(T_OBJECT);
+  JavaCalls::call_static(&result, klass, makeInstance, sig, CHECK_NULL);
+  return JNIHandles::make_local((oop) result.get_jobject());
+JVM_END
+
 void GraalRuntime::check_generated_sources_sha1(TRAPS) {
   TempNewSymbol name = SymbolTable::new_symbol("GeneratedSourcesSha1", CHECK_ABORT);
   KlassHandle klass = load_required_class(name);