307 static int interpreter_frame_monitor_size(); 308 309 void interpreter_frame_verify_monitor(BasicObjectLock* value) const; 310 311 // Return/result value from this interpreter frame 312 // If the method return type is T_OBJECT or T_ARRAY populates oop_result 313 // For other (non-T_VOID) the appropriate field in the jvalue is populated 314 // with the result value. 315 // Should only be called when at method exit when the method is not 316 // exiting due to an exception. 317 BasicType interpreter_frame_result(oop* oop_result, jvalue* value_result); 318 319 public: 320 // Method & constant pool cache 321 Method* interpreter_frame_method() const; 322 void interpreter_frame_set_method(Method* method); 323 Method** interpreter_frame_method_addr() const; 324 ConstantPoolCache** interpreter_frame_cache_addr() const; 325 oop* interpreter_frame_mirror_addr() const; 326 327 intptr_t* interpreter_frame_vt_alloc_ptr() const; 328 intptr_t** interpreter_frame_vt_alloc_ptr_addr() const; 329 void interpreter_frame_set_vt_alloc_ptr(intptr_t* ptr); 330 331 void interpreter_frame_set_mirror(oop mirror); 332 333 public: 334 // Entry frames 335 JavaCallWrapper* entry_frame_call_wrapper() const { return *entry_frame_call_wrapper_addr(); } 336 JavaCallWrapper* entry_frame_call_wrapper_if_safe(JavaThread* thread) const; 337 JavaCallWrapper** entry_frame_call_wrapper_addr() const; 338 intptr_t* entry_frame_argument_at(int offset) const; 339 340 // tells whether there is another chunk of Delta stack above 341 bool entry_frame_is_first() const; 342 343 // Safepoints 344 345 public: 346 oop saved_oop_result(RegisterMap* map) const; 347 void set_saved_oop_result(RegisterMap* map, oop obj); 348 349 // For debugging 350 private: | 307 static int interpreter_frame_monitor_size(); 308 309 void interpreter_frame_verify_monitor(BasicObjectLock* value) const; 310 311 // Return/result value from this interpreter frame 312 // If the method return type is T_OBJECT or T_ARRAY populates oop_result 313 // For other (non-T_VOID) the appropriate field in the jvalue is populated 314 // with the result value. 315 // Should only be called when at method exit when the method is not 316 // exiting due to an exception. 317 BasicType interpreter_frame_result(oop* oop_result, jvalue* value_result); 318 319 public: 320 // Method & constant pool cache 321 Method* interpreter_frame_method() const; 322 void interpreter_frame_set_method(Method* method); 323 Method** interpreter_frame_method_addr() const; 324 ConstantPoolCache** interpreter_frame_cache_addr() const; 325 oop* interpreter_frame_mirror_addr() const; 326 327 void interpreter_frame_set_mirror(oop mirror); 328 329 public: 330 // Entry frames 331 JavaCallWrapper* entry_frame_call_wrapper() const { return *entry_frame_call_wrapper_addr(); } 332 JavaCallWrapper* entry_frame_call_wrapper_if_safe(JavaThread* thread) const; 333 JavaCallWrapper** entry_frame_call_wrapper_addr() const; 334 intptr_t* entry_frame_argument_at(int offset) const; 335 336 // tells whether there is another chunk of Delta stack above 337 bool entry_frame_is_first() const; 338 339 // Safepoints 340 341 public: 342 oop saved_oop_result(RegisterMap* map) const; 343 void set_saved_oop_result(RegisterMap* map, oop obj); 344 345 // For debugging 346 private: |