comparison src/share/vm/c1/c1_LIRGenerator.cpp @ 4966:701a83c86f28

7120481: storeStore barrier in constructor with final field Summary: Issue storestore barrier before constructor return if the constructor write final field. Reviewed-by: dholmes, jrose, roland, coleenp Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author jiangli
date Tue, 21 Feb 2012 13:14:55 -0500
parents 9164b8236699
children 33df1aeaebbf 0105f367a14c
comparison
equal deleted inserted replaced
4965:d79f8393df2b 4966:701a83c86f28
3163 if (result->is_valid()) { 3163 if (result->is_valid()) {
3164 __ move(phys_reg, result); 3164 __ move(phys_reg, result);
3165 } 3165 }
3166 return result; 3166 return result;
3167 } 3167 }
3168
3169 void LIRGenerator::do_MemBar(MemBar* x) {
3170 if (os::is_MP()) {
3171 LIR_Code code = x->code();
3172 switch(code) {
3173 case lir_membar_acquire : __ membar_acquire(); break;
3174 case lir_membar_release : __ membar_release(); break;
3175 case lir_membar : __ membar(); break;
3176 case lir_membar_loadload : __ membar_loadload(); break;
3177 case lir_membar_storestore: __ membar_storestore(); break;
3178 case lir_membar_loadstore : __ membar_loadstore(); break;
3179 case lir_membar_storeload : __ membar_storeload(); break;
3180 default : ShouldNotReachHere(); break;
3181 }
3182 }
3183 }
3184