1.1 --- a/src/share/vm/opto/memnode.cpp Mon Aug 08 13:19:46 2011 -0700 1.2 +++ b/src/share/vm/opto/memnode.cpp Tue Aug 02 18:36:40 2011 +0200 1.3 @@ -925,8 +925,9 @@ 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) || 1.8 - opc == Op_MemBarRelease || opc == Op_MemBarCPUOrder) { 1.9 + if ((final && (opc == Op_MemBarAcquire || opc == Op_MemBarAcquireLock)) || 1.10 + opc == Op_MemBarRelease || opc == Op_MemBarCPUOrder || 1.11 + opc == Op_MemBarReleaseLock) { 1.12 Node* mem = current->in(0)->in(TypeFunc::Memory); 1.13 if (mem->is_MergeMem()) { 1.14 MergeMemNode* merge = mem->as_MergeMem(); 1.15 @@ -2666,6 +2667,8 @@ 1.16 switch (opcode) { 1.17 case Op_MemBarAcquire: return new(C, len) MemBarAcquireNode(C, atp, pn); 1.18 case Op_MemBarRelease: return new(C, len) MemBarReleaseNode(C, atp, pn); 1.19 + case Op_MemBarAcquireLock: return new(C, len) MemBarAcquireLockNode(C, atp, pn); 1.20 + case Op_MemBarReleaseLock: return new(C, len) MemBarReleaseLockNode(C, atp, pn); 1.21 case Op_MemBarVolatile: return new(C, len) MemBarVolatileNode(C, atp, pn); 1.22 case Op_MemBarCPUOrder: return new(C, len) MemBarCPUOrderNode(C, atp, pn); 1.23 case Op_Initialize: return new(C, len) InitializeNode(C, atp, pn);