< prev index next >

src/hotspot/share/runtime/vframe_hp.hpp

Print this page

 61   void update_local(BasicType type, int index, jvalue value);
 62 
 63   // Update an expression stack value in a compiled frame. Update happens when deopt occurs
 64   void update_stack(BasicType type, int index, jvalue value);
 65 
 66   // Update a lock value in a compiled frame. Update happens when deopt occurs
 67   void update_monitor(int index, MonitorInfo* value);
 68 
 69   // Returns the active nmethod
 70   CompiledMethod*  code() const;
 71 
 72   // Returns the scopeDesc
 73   ScopeDesc* scope() const { return _scope; }
 74 
 75   // Return the compiledVFrame for the desired scope
 76   compiledVFrame* at_scope(int decode_offset, int vframe_id);
 77 
 78   // Returns SynchronizationEntryBCI or bci() (used for synchronization)
 79   int raw_bci() const;
 80 



 81  protected:
 82   ScopeDesc* _scope;
 83   int _vframe_id;
 84 
 85   //StackValue resolve(ScopeValue* sv) const;
 86   BasicLock* resolve_monitor_lock(Location location) const;
 87   StackValue *create_stack_value(ScopeValue *sv) const;

 88 
 89  private:
 90   compiledVFrame(const frame* fr, const RegisterMap* reg_map, JavaThread* thread, ScopeDesc* scope, int vframe_id);
 91 
 92 #ifndef PRODUCT
 93  public:
 94   void verify() const;
 95 #endif
 96 };
 97 
 98 // In order to implement set_locals for compiled vframes we must
 99 // store updated locals in a data structure that contains enough
100 // information to recognize equality with a vframe and to store
101 // any updated locals.
102 
103 class jvmtiDeferredLocalVariable;
104 class jvmtiDeferredLocalVariableSet : public CHeapObj<mtCompiler> {
105   friend class compiledVFrame;
106 
107 private:

 61   void update_local(BasicType type, int index, jvalue value);
 62 
 63   // Update an expression stack value in a compiled frame. Update happens when deopt occurs
 64   void update_stack(BasicType type, int index, jvalue value);
 65 
 66   // Update a lock value in a compiled frame. Update happens when deopt occurs
 67   void update_monitor(int index, MonitorInfo* value);
 68 
 69   // Returns the active nmethod
 70   CompiledMethod*  code() const;
 71 
 72   // Returns the scopeDesc
 73   ScopeDesc* scope() const { return _scope; }
 74 
 75   // Return the compiledVFrame for the desired scope
 76   compiledVFrame* at_scope(int decode_offset, int vframe_id);
 77 
 78   // Returns SynchronizationEntryBCI or bci() (used for synchronization)
 79   int raw_bci() const;
 80 
 81   // Used by stack allocation to match a stack oop to a described stack allocated object
 82   ScopeValue *match_object_to_stack_oop(intptr_t *oop_ptr, intptr_t *sp_base, GrowableArray<ScopeValue*>* objects) const;
 83 
 84  protected:
 85   ScopeDesc* _scope;
 86   int _vframe_id;
 87 
 88   //StackValue resolve(ScopeValue* sv) const;
 89   BasicLock* resolve_monitor_lock(Location location) const;
 90   StackValue *create_stack_value(ScopeValue *sv) const;
 91   ScopeValue *get_scope_value(GrowableArray<ScopeValue*>*  scv_list, int index, GrowableArray<ScopeValue*>* objects) const;
 92 
 93  private:
 94   compiledVFrame(const frame* fr, const RegisterMap* reg_map, JavaThread* thread, ScopeDesc* scope, int vframe_id);
 95 
 96 #ifndef PRODUCT
 97  public:
 98   void verify() const;
 99 #endif
100 };
101 
102 // In order to implement set_locals for compiled vframes we must
103 // store updated locals in a data structure that contains enough
104 // information to recognize equality with a vframe and to store
105 // any updated locals.
106 
107 class jvmtiDeferredLocalVariable;
108 class jvmtiDeferredLocalVariableSet : public CHeapObj<mtCompiler> {
109   friend class compiledVFrame;
110 
111 private:
< prev index next >