< prev index next >

src/hotspot/share/jvmci/jvmciEnv.hpp

Print this page

445   void destroy_local(JVMCIObject object);
446 
447   // Makes a JNI global handle that is not scoped by the
448   // lifetime of a JVMCIRuntime (cf JVMCIRuntime::make_global).
449   // These JNI handles are used when translating an object
450   // between the HotSpot and JVMCI shared library heap via
451   // HotSpotJVMCIRuntime.translate(Object) and
452   // HotSpotJVMCIRuntime.unhand(Class<T>, long). Translation
453   // can happen in either direction so the referenced object
454   // can reside in either heap which is why JVMCIRuntime scoped
455   // handles cannot be used (they are specific to HotSpot heap objects).
456   JVMCIObject make_global(JVMCIObject object);
457 
458   // Destroys a JNI global handle created by JVMCIEnv::make_global.
459   void destroy_global(JVMCIObject object);
460 
461   // Updates the nmethod (if any) in the HotSpotNmethod.address
462   // field of `mirror` to prevent it from being called.
463   // If `deoptimize` is true, the nmethod is immediately deoptimized.
464   // The HotSpotNmethod.address field is zero upon returning.
465   void invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimze, JVMCI_TRAPS);
466 
467   void initialize_installed_code(JVMCIObject installed_code, CodeBlob* cb, JVMCI_TRAPS);
468 
469  private:
470   JVMCICompileState* _compile_state;
471 
472  public:
473 
474   // Determines if this is for the JVMCI runtime in the HotSpot
475   // heap (true) or the shared library heap (false).
476   bool is_hotspot() { return _is_hotspot; }
477 
478   JVMCICompileState* compile_state() { return _compile_state; }
479   void set_compile_state(JVMCICompileState* compile_state) {
480     assert(_compile_state == nullptr, "set only once");
481     _compile_state = compile_state;
482   }
483   // Generate declarations for the initialize, new, isa, get and set methods for all the types and
484   // fields declared in the JVMCI_CLASSES_DO macro.
485 

445   void destroy_local(JVMCIObject object);
446 
447   // Makes a JNI global handle that is not scoped by the
448   // lifetime of a JVMCIRuntime (cf JVMCIRuntime::make_global).
449   // These JNI handles are used when translating an object
450   // between the HotSpot and JVMCI shared library heap via
451   // HotSpotJVMCIRuntime.translate(Object) and
452   // HotSpotJVMCIRuntime.unhand(Class<T>, long). Translation
453   // can happen in either direction so the referenced object
454   // can reside in either heap which is why JVMCIRuntime scoped
455   // handles cannot be used (they are specific to HotSpot heap objects).
456   JVMCIObject make_global(JVMCIObject object);
457 
458   // Destroys a JNI global handle created by JVMCIEnv::make_global.
459   void destroy_global(JVMCIObject object);
460 
461   // Updates the nmethod (if any) in the HotSpotNmethod.address
462   // field of `mirror` to prevent it from being called.
463   // If `deoptimize` is true, the nmethod is immediately deoptimized.
464   // The HotSpotNmethod.address field is zero upon returning.
465   void invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimze, nmethod::InvalidationReason invalidation_reason, JVMCI_TRAPS);
466 
467   void initialize_installed_code(JVMCIObject installed_code, CodeBlob* cb, JVMCI_TRAPS);
468 
469  private:
470   JVMCICompileState* _compile_state;
471 
472  public:
473 
474   // Determines if this is for the JVMCI runtime in the HotSpot
475   // heap (true) or the shared library heap (false).
476   bool is_hotspot() { return _is_hotspot; }
477 
478   JVMCICompileState* compile_state() { return _compile_state; }
479   void set_compile_state(JVMCICompileState* compile_state) {
480     assert(_compile_state == nullptr, "set only once");
481     _compile_state = compile_state;
482   }
483   // Generate declarations for the initialize, new, isa, get and set methods for all the types and
484   // fields declared in the JVMCI_CLASSES_DO macro.
485 
< prev index next >