src/share/vm/runtime/frame.hpp

Print this page
rev 4267 : 8009981: nashorn tests fail with -XX:+VerifyStack
Summary: nmethod::preserve_callee_argument_oops() must take appendix into account.
Reviewed-by:


 394   // For debugging
 395  private:
 396   const char* print_name() const;
 397 
 398   void describe_pd(FrameValues& values, int frame_no);
 399 
 400  public:
 401   void print_value() const { print_value_on(tty,NULL); }
 402   void print_value_on(outputStream* st, JavaThread *thread) const;
 403   void print_on(outputStream* st) const;
 404   void interpreter_frame_print_on(outputStream* st) const;
 405   void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
 406 
 407   // Add annotated descriptions of memory locations belonging to this frame to values
 408   void describe(FrameValues& values, int frame_no);
 409 
 410   // Conversion from an VMReg to physical stack location
 411   oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const;
 412 
 413   // Oops-do's
 414   void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, const RegisterMap* reg_map, OopClosure* f);
 415   void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true);
 416 
 417  private:
 418   void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f);
 419 
 420   // Iteration of oops
 421   void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
 422   void oops_entry_do(OopClosure* f, const RegisterMap* map);
 423   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
 424   int adjust_offset(Method* method, int index); // helper for above fn
 425  public:
 426   // Memory management
 427   void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); }
 428   void nmethods_do(CodeBlobClosure* cf);
 429 
 430   // RedefineClasses support for finding live interpreted methods on the stack
 431   void metadata_do(void f(Metadata*));
 432 
 433   void gc_prologue();
 434   void gc_epilogue();




 394   // For debugging
 395  private:
 396   const char* print_name() const;
 397 
 398   void describe_pd(FrameValues& values, int frame_no);
 399 
 400  public:
 401   void print_value() const { print_value_on(tty,NULL); }
 402   void print_value_on(outputStream* st, JavaThread *thread) const;
 403   void print_on(outputStream* st) const;
 404   void interpreter_frame_print_on(outputStream* st) const;
 405   void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
 406 
 407   // Add annotated descriptions of memory locations belonging to this frame to values
 408   void describe(FrameValues& values, int frame_no);
 409 
 410   // Conversion from an VMReg to physical stack location
 411   oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const;
 412 
 413   // Oops-do's
 414   void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f);
 415   void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true);
 416 
 417  private:
 418   void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f);
 419 
 420   // Iteration of oops
 421   void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
 422   void oops_entry_do(OopClosure* f, const RegisterMap* map);
 423   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
 424   int adjust_offset(Method* method, int index); // helper for above fn
 425  public:
 426   // Memory management
 427   void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); }
 428   void nmethods_do(CodeBlobClosure* cf);
 429 
 430   // RedefineClasses support for finding live interpreted methods on the stack
 431   void metadata_do(void f(Metadata*));
 432 
 433   void gc_prologue();
 434   void gc_epilogue();