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