401 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); 402 void oops_entry_do(OopClosure* f, const RegisterMap* map); 403 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); 404 int adjust_offset(Method* method, int index); // helper for above fn 405 public: 406 // Memory management 407 void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); } 408 void nmethods_do(CodeBlobClosure* cf); 409 410 // RedefineClasses support for finding live interpreted methods on the stack 411 void metadata_do(void f(Metadata*)); 412 413 // Verification 414 void verify(const RegisterMap* map); 415 static bool verify_return_pc(address x); 416 // Usage: 417 // assert(frame::verify_return_pc(return_address), "must be a return pc"); 418 419 int pd_oop_map_offset_adjustment() const; 420 421 #include CPU_HEADER(frame) 422 423 }; 424 425 #ifndef PRODUCT 426 // A simple class to describe a location on the stack 427 class FrameValue VALUE_OBJ_CLASS_SPEC { 428 public: 429 intptr_t* location; 430 char* description; 431 int owner; 432 int priority; 433 434 FrameValue() { 435 location = NULL; 436 description = NULL; 437 owner = -1; 438 priority = 0; 439 } 440 | 401 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); 402 void oops_entry_do(OopClosure* f, const RegisterMap* map); 403 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); 404 int adjust_offset(Method* method, int index); // helper for above fn 405 public: 406 // Memory management 407 void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); } 408 void nmethods_do(CodeBlobClosure* cf); 409 410 // RedefineClasses support for finding live interpreted methods on the stack 411 void metadata_do(void f(Metadata*)); 412 413 // Verification 414 void verify(const RegisterMap* map); 415 static bool verify_return_pc(address x); 416 // Usage: 417 // assert(frame::verify_return_pc(return_address), "must be a return pc"); 418 419 int pd_oop_map_offset_adjustment() const; 420 421 DEBUG_ONLY(void pd_ps();) // platform dependent frame printing 422 423 #include CPU_HEADER(frame) 424 425 }; 426 427 #ifndef PRODUCT 428 // A simple class to describe a location on the stack 429 class FrameValue VALUE_OBJ_CLASS_SPEC { 430 public: 431 intptr_t* location; 432 char* description; 433 int owner; 434 int priority; 435 436 FrameValue() { 437 location = NULL; 438 description = NULL; 439 owner = -1; 440 priority = 0; 441 } 442 |