1.1 --- a/src/share/vm/opto/parse3.cpp Tue Dec 08 16:27:21 2009 -0800 1.2 +++ b/src/share/vm/opto/parse3.cpp Wed Dec 09 16:40:45 2009 -0800 1.3 @@ -240,19 +240,19 @@ 1.4 // membar is dependent on the store, keeping any other membars generated 1.5 // below from floating up past the store. 1.6 int adr_idx = C->get_alias_index(adr_type); 1.7 - insert_mem_bar_volatile(Op_MemBarVolatile, adr_idx); 1.8 + insert_mem_bar_volatile(Op_MemBarVolatile, adr_idx, store); 1.9 1.10 // Now place a membar for AliasIdxBot for the unknown yet-to-be-parsed 1.11 // volatile alias indices. Skip this if the membar is redundant. 1.12 if (adr_idx != Compile::AliasIdxBot) { 1.13 - insert_mem_bar_volatile(Op_MemBarVolatile, Compile::AliasIdxBot); 1.14 + insert_mem_bar_volatile(Op_MemBarVolatile, Compile::AliasIdxBot, store); 1.15 } 1.16 1.17 // Finally, place alias-index-specific membars for each volatile index 1.18 // that isn't the adr_idx membar. Typically there's only 1 or 2. 1.19 for( int i = Compile::AliasIdxRaw; i < C->num_alias_types(); i++ ) { 1.20 if (i != adr_idx && C->alias_type(i)->is_volatile()) { 1.21 - insert_mem_bar_volatile(Op_MemBarVolatile, i); 1.22 + insert_mem_bar_volatile(Op_MemBarVolatile, i, store); 1.23 } 1.24 } 1.25 }