7120481: storeStore barrier in constructor with final field

Issue storestore barrier before constructor return if the constructor write final field.

Reviewed-by: dholmes, jrose, roland, coleenp
This commit is contained in:
Jiangli Zhou 2012-02-21 13:14:55 -05:00 committed by Jiangli Zhou
parent a94cb97f4a
commit 3e904497b1
18 changed files with 155 additions and 1 deletions

View file

@ -855,4 +855,20 @@ void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
output()->put(')');
}
void InstructionPrinter::do_MemBar(MemBar* x) {
if (os::is_MP()) {
LIR_Code code = x->code();
switch (code) {
case lir_membar_acquire : output()->print("membar_acquire"); break;
case lir_membar_release : output()->print("membar_release"); break;
case lir_membar : output()->print("membar"); break;
case lir_membar_loadload : output()->print("membar_loadload"); break;
case lir_membar_storestore: output()->print("membar_storestore"); break;
case lir_membar_loadstore : output()->print("membar_loadstore"); break;
case lir_membar_storeload : output()->print("membar_storeload"); break;
default : ShouldNotReachHere(); break;
}
}
}
#endif // PRODUCT