src/share/vm/opto/callnode.hpp

changeset 5626
766fac3395d6
parent 5110
6f3fd5150b67
child 5643
3bfb204913de
     1.1 --- a/src/share/vm/opto/callnode.hpp	Fri Aug 23 03:14:54 2013 -0700
     1.2 +++ b/src/share/vm/opto/callnode.hpp	Fri Aug 23 11:41:37 2013 -0700
     1.3 @@ -449,14 +449,17 @@
     1.4  // at a safepoint.
     1.5  
     1.6  class SafePointScalarObjectNode: public TypeNode {
     1.7 -  uint _first_index; // First input edge index of a SafePoint node where
     1.8 +  uint _first_index; // First input edge relative index of a SafePoint node where
     1.9                       // states of the scalarized object fields are collected.
    1.10 +                     // It is relative to the last (youngest) jvms->_scloff.
    1.11    uint _n_fields;    // Number of non-static fields of the scalarized object.
    1.12    DEBUG_ONLY(AllocateNode* _alloc;)
    1.13  
    1.14    virtual uint hash() const ; // { return NO_HASH; }
    1.15    virtual uint cmp( const Node &n ) const;
    1.16  
    1.17 +  uint first_index() const { return _first_index; }
    1.18 +
    1.19  public:
    1.20    SafePointScalarObjectNode(const TypeOopPtr* tp,
    1.21  #ifdef ASSERT
    1.22 @@ -469,7 +472,10 @@
    1.23    virtual const RegMask &out_RegMask() const;
    1.24    virtual uint           match_edge(uint idx) const;
    1.25  
    1.26 -  uint first_index() const { return _first_index; }
    1.27 +  uint first_index(JVMState* jvms) const {
    1.28 +    assert(jvms != NULL, "missed JVMS");
    1.29 +    return jvms->scloff() + _first_index;
    1.30 +  }
    1.31    uint n_fields()    const { return _n_fields; }
    1.32  
    1.33  #ifdef ASSERT
    1.34 @@ -485,7 +491,7 @@
    1.35    // corresponds appropriately to "this" in "new_call".  Assumes that
    1.36    // "sosn_map" is a map, specific to the translation of "s" to "new_call",
    1.37    // mapping old SafePointScalarObjectNodes to new, to avoid multiple copies.
    1.38 -  SafePointScalarObjectNode* clone(int jvms_adj, Dict* sosn_map) const;
    1.39 +  SafePointScalarObjectNode* clone(Dict* sosn_map) const;
    1.40  
    1.41  #ifndef PRODUCT
    1.42    virtual void              dump_spec(outputStream *st) const;

mercurial