< prev index next >

src/hotspot/cpu/s390/frame_s390.hpp

Print this page

444 
445   // NOTE: Stack pointer is now held in the base class, so remove it from here.
446 
447   // Needed by deoptimization.
448   intptr_t* _unextended_sp;
449 
450   // Frame pointer for this frame.
451   intptr_t* _fp;
452 
453  public:
454 
455   // Interface for all frames:
456 
457   // Accessors
458 
459   inline intptr_t* fp() const { return _fp; }
460 
461  private:
462 
463   inline void find_codeblob_and_set_pc_and_deopt_state(address pc);

464 
465  // Constructors
466 
467  public:
468   inline frame(intptr_t* sp);
469   // To be used, if sp was not extended to match callee's calling convention.
470   inline frame(intptr_t* sp, address pc);
471   inline frame(intptr_t* sp, address pc, intptr_t* unextended_sp);
472 
473   // Access frame via stack pointer.
474   inline intptr_t* sp_addr_at(int index) const  { return &sp()[index]; }
475   inline intptr_t  sp_at(     int index) const  { return *sp_addr_at(index); }
476 
477   // Access ABIs.
478   inline z_abi_16*  own_abi()     const { return (z_abi_16*) sp(); }
479   inline z_abi_160* callers_abi() const { return (z_abi_160*) fp(); }
480 
481  private:
482 
483   intptr_t* compiled_sender_sp(CodeBlob* cb) const;
484   address*  compiled_sender_pc_addr(CodeBlob* cb) const;
485 
486   address* sender_pc_addr(void) const;
487 
488  public:





489 
490   // Additional interface for interpreter frames:
491   static int interpreter_frame_interpreterstate_size_in_bytes();
492   static int interpreter_frame_monitor_size_in_bytes();
493 
494 
495   // template interpreter state
496   inline z_ijava_state* ijava_state_unchecked() const;
497 
498  private:
499 
500   inline z_ijava_state* ijava_state() const;
501 
502   // Where z_ijava_state.monitors is saved.
503   inline BasicObjectLock**  interpreter_frame_monitors_addr() const;
504   // Where z_ijava_state.esp is saved.
505   inline intptr_t** interpreter_frame_esp_addr() const;
506 
507  public:
508   inline intptr_t* interpreter_frame_top_frame_sp();

444 
445   // NOTE: Stack pointer is now held in the base class, so remove it from here.
446 
447   // Needed by deoptimization.
448   intptr_t* _unextended_sp;
449 
450   // Frame pointer for this frame.
451   intptr_t* _fp;
452 
453  public:
454 
455   // Interface for all frames:
456 
457   // Accessors
458 
459   inline intptr_t* fp() const { return _fp; }
460 
461  private:
462 
463   inline void find_codeblob_and_set_pc_and_deopt_state(address pc);
464   const ImmutableOopMap* get_oop_map() const;
465 
466  // Constructors
467 
468  public:

469   // To be used, if sp was not extended to match callee's calling convention.
470   inline frame(intptr_t* sp, address pc);
471   inline frame(intptr_t* sp, address pc, intptr_t* unextended_sp);
472 
473   // Access frame via stack pointer.
474   inline intptr_t* sp_addr_at(int index) const  { return &sp()[index]; }
475   inline intptr_t  sp_at(     int index) const  { return *sp_addr_at(index); }
476 
477   // Access ABIs.
478   inline z_abi_16*  own_abi()     const { return (z_abi_16*) sp(); }
479   inline z_abi_160* callers_abi() const { return (z_abi_160*) fp(); }
480 
481  private:
482 
483   intptr_t* compiled_sender_sp(CodeBlob* cb) const;
484   address*  compiled_sender_pc_addr(CodeBlob* cb) const;
485 
486   address* sender_pc_addr(void) const;
487 
488  public:
489   template <bool relative = false>
490   inline intptr_t* interpreter_frame_last_sp() const;
491 
492   template <typename RegisterMapT>
493   static void update_map_with_saved_link(RegisterMapT* map, intptr_t** link_addr);
494 
495   // Additional interface for interpreter frames:
496   static int interpreter_frame_interpreterstate_size_in_bytes();
497   static int interpreter_frame_monitor_size_in_bytes();
498 
499 
500   // template interpreter state
501   inline z_ijava_state* ijava_state_unchecked() const;
502 
503  private:
504 
505   inline z_ijava_state* ijava_state() const;
506 
507   // Where z_ijava_state.monitors is saved.
508   inline BasicObjectLock**  interpreter_frame_monitors_addr() const;
509   // Where z_ijava_state.esp is saved.
510   inline intptr_t** interpreter_frame_esp_addr() const;
511 
512  public:
513   inline intptr_t* interpreter_frame_top_frame_sp();
< prev index next >