414 // Conversion from an VMReg to physical stack location |
414 // Conversion from an VMReg to physical stack location |
415 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const; |
415 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const; |
416 |
416 |
417 // Oops-do's |
417 // Oops-do's |
418 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f); |
418 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f); |
419 void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true); |
419 void oops_interpreted_do(OopClosure* f, CLDClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true); |
420 |
420 |
421 private: |
421 private: |
422 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f); |
422 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f); |
423 |
423 |
424 // Iteration of oops |
424 // Iteration of oops |
425 void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); |
425 void oops_do_internal(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache); |
426 void oops_entry_do(OopClosure* f, const RegisterMap* map); |
426 void oops_entry_do(OopClosure* f, const RegisterMap* map); |
427 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); |
427 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map); |
428 int adjust_offset(Method* method, int index); // helper for above fn |
428 int adjust_offset(Method* method, int index); // helper for above fn |
429 public: |
429 public: |
430 // Memory management |
430 // Memory management |
431 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); } |
431 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); } |
432 void nmethods_do(CodeBlobClosure* cf); |
432 void nmethods_do(CodeBlobClosure* cf); |
433 |
433 |
434 // RedefineClasses support for finding live interpreted methods on the stack |
434 // RedefineClasses support for finding live interpreted methods on the stack |
435 void metadata_do(void f(Metadata*)); |
435 void metadata_do(void f(Metadata*)); |
436 |
436 |