< prev index next >

src/share/vm/jvmci/jvmciCompilerToVM.cpp

Print this page




  43 #include "jvmci/jvmciEnv.hpp"
  44 #include "jvmci/jvmciJavaClasses.hpp"
  45 #include "jvmci/jvmciCodeInstaller.hpp"
  46 #include "gc/g1/heapRegion.hpp"
  47 #include "runtime/javaCalls.hpp"
  48 #include "runtime/deoptimization.hpp"
  49 #include "runtime/vframe.hpp"
  50 #include "runtime/vframe_hp.hpp"
  51 #include "runtime/vmStructs.hpp"
  52 
  53 
  54 // Entry to native method implementation that transitions current thread to '_thread_in_vm'.
  55 #define C2V_VMENTRY(result_type, name, signature) \
  56   JNIEXPORT result_type JNICALL c2v_ ## name signature { \
  57   TRACE_jvmci_1("CompilerToVM::" #name); \
  58   TRACE_CALL(result_type, jvmci_ ## name signature) \
  59   JVMCI_VM_ENTRY_MARK; \
  60 
  61 #define C2V_END }
  62 
  63 oop CompilerToVM::get_jvmci_method(methodHandle method, TRAPS) {
  64   if (method() != NULL) {
  65     JavaValue result(T_OBJECT);
  66     JavaCallArguments args;
  67     args.push_long((jlong) (address) method());
  68     JavaCalls::call_static(&result, SystemDictionary::HotSpotResolvedJavaMethodImpl_klass(), vmSymbols::fromMetaspace_name(), vmSymbols::method_fromMetaspace_signature(), &args, CHECK_NULL);
  69 
  70     return (oop)result.get_jobject();
  71   }
  72   return NULL;
  73 }
  74 
  75 oop CompilerToVM::get_jvmci_type(KlassHandle klass, TRAPS) {
  76   if (klass() != NULL) {
  77     JavaValue result(T_OBJECT);
  78     JavaCallArguments args;
  79     args.push_oop(klass->java_mirror());
  80     JavaCalls::call_static(&result, SystemDictionary::HotSpotResolvedObjectTypeImpl_klass(), vmSymbols::fromMetaspace_name(), vmSymbols::klass_fromMetaspace_signature(), &args, CHECK_NULL);
  81 
  82     return (oop)result.get_jobject();
  83   }




  43 #include "jvmci/jvmciEnv.hpp"
  44 #include "jvmci/jvmciJavaClasses.hpp"
  45 #include "jvmci/jvmciCodeInstaller.hpp"
  46 #include "gc/g1/heapRegion.hpp"
  47 #include "runtime/javaCalls.hpp"
  48 #include "runtime/deoptimization.hpp"
  49 #include "runtime/vframe.hpp"
  50 #include "runtime/vframe_hp.hpp"
  51 #include "runtime/vmStructs.hpp"
  52 
  53 
  54 // Entry to native method implementation that transitions current thread to '_thread_in_vm'.
  55 #define C2V_VMENTRY(result_type, name, signature) \
  56   JNIEXPORT result_type JNICALL c2v_ ## name signature { \
  57   TRACE_jvmci_1("CompilerToVM::" #name); \
  58   TRACE_CALL(result_type, jvmci_ ## name signature) \
  59   JVMCI_VM_ENTRY_MARK; \
  60 
  61 #define C2V_END }
  62 
  63 oop CompilerToVM::get_jvmci_method(const methodHandle& method, TRAPS) {
  64   if (method() != NULL) {
  65     JavaValue result(T_OBJECT);
  66     JavaCallArguments args;
  67     args.push_long((jlong) (address) method());
  68     JavaCalls::call_static(&result, SystemDictionary::HotSpotResolvedJavaMethodImpl_klass(), vmSymbols::fromMetaspace_name(), vmSymbols::method_fromMetaspace_signature(), &args, CHECK_NULL);
  69 
  70     return (oop)result.get_jobject();
  71   }
  72   return NULL;
  73 }
  74 
  75 oop CompilerToVM::get_jvmci_type(KlassHandle klass, TRAPS) {
  76   if (klass() != NULL) {
  77     JavaValue result(T_OBJECT);
  78     JavaCallArguments args;
  79     args.push_oop(klass->java_mirror());
  80     JavaCalls::call_static(&result, SystemDictionary::HotSpotResolvedObjectTypeImpl_klass(), vmSymbols::fromMetaspace_name(), vmSymbols::klass_fromMetaspace_signature(), &args, CHECK_NULL);
  81 
  82     return (oop)result.get_jobject();
  83   }


< prev index next >