Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/code/pcDesc.hpp
          +++ new/src/share/vm/code/pcDesc.hpp
↓ open down ↓ 30 lines elided ↑ open up ↑
  31   31    friend class VMStructs;
  32   32   private:
  33   33    int _pc_offset;           // offset from start of nmethod
  34   34    int _scope_decode_offset; // offset for scope in nmethod
  35   35    int _obj_decode_offset;
  36   36  
  37   37    union PcDescFlags {
  38   38      int word;
  39   39      struct {
  40   40        unsigned int reexecute: 1;
       41 +      unsigned int is_method_handle_invoke: 1;
  41   42      } bits;
  42   43      bool operator ==(const PcDescFlags& other) { return word == other.word; }
  43   44    } _flags;
  44   45  
  45   46   public:
  46   47    int pc_offset() const           { return _pc_offset;   }
  47   48    int scope_decode_offset() const { return _scope_decode_offset; }
  48   49    int obj_decode_offset() const   { return _obj_decode_offset; }
  49   50  
  50   51    void set_pc_offset(int x)           { _pc_offset           = x; }
↓ open down ↓ 14 lines elided ↑ open up ↑
  65   66    bool     should_reexecute()              const { return _flags.bits.reexecute; }
  66   67    void set_should_reexecute(bool z)              { _flags.bits.reexecute = z;    }
  67   68  
  68   69    // Does pd refer to the same information as pd?
  69   70    bool is_same_info(const PcDesc* pd) {
  70   71      return _scope_decode_offset == pd->_scope_decode_offset &&
  71   72        _obj_decode_offset == pd->_obj_decode_offset &&
  72   73        _flags == pd->_flags;
  73   74    }
  74   75  
       76 +  bool     is_method_handle_invoke()       const { return _flags.bits.is_method_handle_invoke;     }
       77 +  void set_is_method_handle_invoke(bool z)       {        _flags.bits.is_method_handle_invoke = z; }
       78 +
  75   79    // Returns the real pc
  76   80    address real_pc(const nmethod* code) const;
  77   81  
  78   82    void print(nmethod* code);
  79   83    bool verify(nmethod* code);
  80   84  };
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX