src/share/vm/opto/memnode.cpp

changeset 6489
50fdb38839eb
parent 6479
2113136690bc
child 6498
5da8bb64b370
     1.1 --- a/src/share/vm/opto/memnode.cpp	Fri Nov 22 12:14:09 2013 -0800
     1.2 +++ b/src/share/vm/opto/memnode.cpp	Tue Nov 26 18:38:19 2013 -0800
     1.3 @@ -1002,9 +1002,13 @@
     1.4      // a synchronized region.
     1.5      while (current->is_Proj()) {
     1.6        int opc = current->in(0)->Opcode();
     1.7 -      if ((final && (opc == Op_MemBarAcquire || opc == Op_MemBarAcquireLock)) ||
     1.8 -          opc == Op_MemBarRelease || opc == Op_MemBarCPUOrder ||
     1.9 -          opc == Op_MemBarReleaseLock) {
    1.10 +      if ((final && (opc == Op_MemBarAcquire ||
    1.11 +                     opc == Op_MemBarAcquireLock ||
    1.12 +                     opc == Op_LoadFence)) ||
    1.13 +          opc == Op_MemBarRelease ||
    1.14 +          opc == Op_StoreFence ||
    1.15 +          opc == Op_MemBarReleaseLock ||
    1.16 +          opc == Op_MemBarCPUOrder) {
    1.17          Node* mem = current->in(0)->in(TypeFunc::Memory);
    1.18          if (mem->is_MergeMem()) {
    1.19            MergeMemNode* merge = mem->as_MergeMem();
    1.20 @@ -2973,15 +2977,17 @@
    1.21  //------------------------------make-------------------------------------------
    1.22  MemBarNode* MemBarNode::make(Compile* C, int opcode, int atp, Node* pn) {
    1.23    switch (opcode) {
    1.24 -  case Op_MemBarAcquire:   return new(C) MemBarAcquireNode(C,  atp, pn);
    1.25 -  case Op_MemBarRelease:   return new(C) MemBarReleaseNode(C,  atp, pn);
    1.26 -  case Op_MemBarAcquireLock: return new(C) MemBarAcquireLockNode(C,  atp, pn);
    1.27 -  case Op_MemBarReleaseLock: return new(C) MemBarReleaseLockNode(C,  atp, pn);
    1.28 -  case Op_MemBarVolatile:  return new(C) MemBarVolatileNode(C, atp, pn);
    1.29 -  case Op_MemBarCPUOrder:  return new(C) MemBarCPUOrderNode(C, atp, pn);
    1.30 -  case Op_Initialize:      return new(C) InitializeNode(C,     atp, pn);
    1.31 -  case Op_MemBarStoreStore: return new(C) MemBarStoreStoreNode(C,  atp, pn);
    1.32 -  default:                 ShouldNotReachHere(); return NULL;
    1.33 +  case Op_MemBarAcquire:     return new(C) MemBarAcquireNode(C, atp, pn);
    1.34 +  case Op_LoadFence:         return new(C) LoadFenceNode(C, atp, pn);
    1.35 +  case Op_MemBarRelease:     return new(C) MemBarReleaseNode(C, atp, pn);
    1.36 +  case Op_StoreFence:        return new(C) StoreFenceNode(C, atp, pn);
    1.37 +  case Op_MemBarAcquireLock: return new(C) MemBarAcquireLockNode(C, atp, pn);
    1.38 +  case Op_MemBarReleaseLock: return new(C) MemBarReleaseLockNode(C, atp, pn);
    1.39 +  case Op_MemBarVolatile:    return new(C) MemBarVolatileNode(C, atp, pn);
    1.40 +  case Op_MemBarCPUOrder:    return new(C) MemBarCPUOrderNode(C, atp, pn);
    1.41 +  case Op_Initialize:        return new(C) InitializeNode(C, atp, pn);
    1.42 +  case Op_MemBarStoreStore:  return new(C) MemBarStoreStoreNode(C, atp, pn);
    1.43 +  default: ShouldNotReachHere(); return NULL;
    1.44    }
    1.45  }
    1.46  

mercurial