< prev index next >

src/cpu/zero/vm/interpreterFrame_zero.hpp

Print this page




  40 // | monitor 0 (maybe)  |
  41 // |  ...               |
  42 // | interpreter state  |
  43 // |  ...               |
  44 // | frame_type         |
  45 // | next_frame         |      high addresses
  46 // +--------------------+  ------------------
  47 // |  ...               |
  48 
  49 class InterpreterFrame : public ZeroFrame {
  50   friend class AbstractInterpreter;
  51 
  52  private:
  53   InterpreterFrame() : ZeroFrame() {
  54     ShouldNotCallThis();
  55   }
  56 
  57  protected:
  58   enum Layout {
  59     istate_off = jf_header_words +
  60       (align_size_up_(sizeof(BytecodeInterpreter),
  61                       wordSize) >> LogBytesPerWord) - 1,
  62     header_words
  63   };
  64 
  65  public:
  66   static InterpreterFrame *build(Method* const method, TRAPS);
  67   static InterpreterFrame *build(int size, TRAPS);
  68 
  69  public:
  70   interpreterState interpreter_state() const {
  71     return (interpreterState) addr_of_word(istate_off);
  72   }
  73 
  74  public:
  75   void identify_word(int   frame_index,
  76                      int   offset,
  77                      char* fieldbuf,
  78                      char* valuebuf,
  79                      int   buflen) const;
  80 };


  40 // | monitor 0 (maybe)  |
  41 // |  ...               |
  42 // | interpreter state  |
  43 // |  ...               |
  44 // | frame_type         |
  45 // | next_frame         |      high addresses
  46 // +--------------------+  ------------------
  47 // |  ...               |
  48 
  49 class InterpreterFrame : public ZeroFrame {
  50   friend class AbstractInterpreter;
  51 
  52  private:
  53   InterpreterFrame() : ZeroFrame() {
  54     ShouldNotCallThis();
  55   }
  56 
  57  protected:
  58   enum Layout {
  59     istate_off = jf_header_words +
  60       (align_up_(sizeof(BytecodeInterpreter),
  61                  wordSize) >> LogBytesPerWord) - 1,
  62     header_words
  63   };
  64 
  65  public:
  66   static InterpreterFrame *build(Method* const method, TRAPS);
  67   static InterpreterFrame *build(int size, TRAPS);
  68 
  69  public:
  70   interpreterState interpreter_state() const {
  71     return (interpreterState) addr_of_word(istate_off);
  72   }
  73 
  74  public:
  75   void identify_word(int   frame_index,
  76                      int   offset,
  77                      char* fieldbuf,
  78                      char* valuebuf,
  79                      int   buflen) const;
  80 };
< prev index next >