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