Mercurial > hg > truffle
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 |