98 friend class frame;
99 friend class VMStructs;
100
101 public:
102 enum messages {
103 no_request = 0, // unused
104 initialize, // Perform one time interpreter initializations (assumes all switches set)
105 // status message to C++ interpreter
106 method_entry, // initial method entry to interpreter
107 method_resume, // frame manager response to return_from_method request (assuming a frame to resume)
108 deopt_resume, // returning from a native call into a deopted frame
109 deopt_resume2, // deopt resume as a result of a PopFrame
110 got_monitors, // frame manager response to more_monitors request
111 rethrow_exception, // unwinding and throwing exception
112 // requests to frame manager from C++ interpreter
113 call_method, // request for new frame from interpreter, manager responds with method_entry
114 return_from_method, // request from interpreter to unwind, manager responds with method_continue
115 more_monitors, // need a new monitor
116 throwing_exception, // unwind stack and rethrow
117 popping_frame, // unwind call and retry call
118 do_osr // request this invocation be OSR's
119 };
120
121 private:
122 JavaThread* _thread; // the vm's java thread pointer
123 address _bcp; // instruction pointer
124 intptr_t* _locals; // local variable pointer
125 ConstantPoolCache* _constants; // constant pool cache
126 Method* _method; // method being executed
127 DataLayout* _mdx; // compiler profiling data for current bytecode
128 intptr_t* _stack; // expression stack
129 messages _msg; // frame manager <-> interpreter message
130 frame_manager_message _result; // result to frame manager
131 interpreterState _prev_link; // previous interpreter state
132 oop _oop_temp; // mirror for interpreted native, null otherwise
133 intptr_t* _stack_base; // base of expression stack
134 intptr_t* _stack_limit; // limit of expression stack
135 BasicObjectLock* _monitor_base; // base of monitors on the native stack
136
137
138 public:
|
98 friend class frame;
99 friend class VMStructs;
100
101 public:
102 enum messages {
103 no_request = 0, // unused
104 initialize, // Perform one time interpreter initializations (assumes all switches set)
105 // status message to C++ interpreter
106 method_entry, // initial method entry to interpreter
107 method_resume, // frame manager response to return_from_method request (assuming a frame to resume)
108 deopt_resume, // returning from a native call into a deopted frame
109 deopt_resume2, // deopt resume as a result of a PopFrame
110 got_monitors, // frame manager response to more_monitors request
111 rethrow_exception, // unwinding and throwing exception
112 // requests to frame manager from C++ interpreter
113 call_method, // request for new frame from interpreter, manager responds with method_entry
114 return_from_method, // request from interpreter to unwind, manager responds with method_continue
115 more_monitors, // need a new monitor
116 throwing_exception, // unwind stack and rethrow
117 popping_frame, // unwind call and retry call
118 do_osr, // request this invocation be OSR's
119 early_return // early return as commanded by jvmti
120 };
121
122 private:
123 JavaThread* _thread; // the vm's java thread pointer
124 address _bcp; // instruction pointer
125 intptr_t* _locals; // local variable pointer
126 ConstantPoolCache* _constants; // constant pool cache
127 Method* _method; // method being executed
128 DataLayout* _mdx; // compiler profiling data for current bytecode
129 intptr_t* _stack; // expression stack
130 messages _msg; // frame manager <-> interpreter message
131 frame_manager_message _result; // result to frame manager
132 interpreterState _prev_link; // previous interpreter state
133 oop _oop_temp; // mirror for interpreted native, null otherwise
134 intptr_t* _stack_base; // base of expression stack
135 intptr_t* _stack_limit; // limit of expression stack
136 BasicObjectLock* _monitor_base; // base of monitors on the native stack
137
138
139 public:
|