src/share/vm/opto/memnode.cpp

changeset 4106
7eca5de9e0b6
parent 4037
da91efe96a93
child 4115
e626685e9f6c
     1.1 --- a/src/share/vm/opto/memnode.cpp	Wed Sep 19 16:50:26 2012 -0700
     1.2 +++ b/src/share/vm/opto/memnode.cpp	Thu Sep 20 16:49:17 2012 +0200
     1.3 @@ -2552,14 +2552,38 @@
     1.4  }
     1.5  
     1.6  //=============================================================================
     1.7 -LoadStoreNode::LoadStoreNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex ) : Node(5) {
     1.8 +//----------------------------------LoadStoreNode------------------------------
     1.9 +LoadStoreNode::LoadStoreNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* rt, uint required )
    1.10 +  : Node(required),
    1.11 +    _type(rt),
    1.12 +    _adr_type(at)
    1.13 +{
    1.14    init_req(MemNode::Control, c  );
    1.15    init_req(MemNode::Memory , mem);
    1.16    init_req(MemNode::Address, adr);
    1.17    init_req(MemNode::ValueIn, val);
    1.18 -  init_req(         ExpectedIn, ex );
    1.19    init_class_id(Class_LoadStore);
    1.20 -
    1.21 +}
    1.22 +
    1.23 +uint LoadStoreNode::ideal_reg() const {
    1.24 +  return _type->ideal_reg();
    1.25 +}
    1.26 +
    1.27 +bool LoadStoreNode::result_not_used() const {
    1.28 +  for( DUIterator_Fast imax, i = fast_outs(imax); i < imax; i++ ) {
    1.29 +    Node *x = fast_out(i);
    1.30 +    if (x->Opcode() == Op_SCMemProj) continue;
    1.31 +    return false;
    1.32 +  }
    1.33 +  return true;
    1.34 +}
    1.35 +
    1.36 +uint LoadStoreNode::size_of() const { return sizeof(*this); }
    1.37 +
    1.38 +//=============================================================================
    1.39 +//----------------------------------LoadStoreConditionalNode--------------------
    1.40 +LoadStoreConditionalNode::LoadStoreConditionalNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex ) : LoadStoreNode(c, mem, adr, val, NULL, TypeInt::BOOL, 5) {
    1.41 +  init_req(ExpectedIn, ex );
    1.42  }
    1.43  
    1.44  //=============================================================================

mercurial