comparison src/share/vm/c1/c1_LIR.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 b642b49f9738
children 6759698e3140
comparison
equal deleted inserted replaced
4965:d79f8393df2b 4966:701a83c86f28
462 case lir_reset_FPU: // result and info always invalid 462 case lir_reset_FPU: // result and info always invalid
463 case lir_breakpoint: // result and info always invalid 463 case lir_breakpoint: // result and info always invalid
464 case lir_membar: // result and info always invalid 464 case lir_membar: // result and info always invalid
465 case lir_membar_acquire: // result and info always invalid 465 case lir_membar_acquire: // result and info always invalid
466 case lir_membar_release: // result and info always invalid 466 case lir_membar_release: // result and info always invalid
467 case lir_membar_loadload: // result and info always invalid
468 case lir_membar_storestore: // result and info always invalid
469 case lir_membar_loadstore: // result and info always invalid
470 case lir_membar_storeload: // result and info always invalid
467 { 471 {
468 assert(op->as_Op0() != NULL, "must be"); 472 assert(op->as_Op0() != NULL, "must be");
469 assert(op->_info == NULL, "info not used by this instruction"); 473 assert(op->_info == NULL, "info not used by this instruction");
470 assert(op->_result->is_illegal(), "not used"); 474 assert(op->_result->is_illegal(), "not used");
471 break; 475 break;
1605 switch(code()) { 1609 switch(code()) {
1606 // LIR_Op0 1610 // LIR_Op0
1607 case lir_membar: s = "membar"; break; 1611 case lir_membar: s = "membar"; break;
1608 case lir_membar_acquire: s = "membar_acquire"; break; 1612 case lir_membar_acquire: s = "membar_acquire"; break;
1609 case lir_membar_release: s = "membar_release"; break; 1613 case lir_membar_release: s = "membar_release"; break;
1614 case lir_membar_loadload: s = "membar_loadload"; break;
1615 case lir_membar_storestore: s = "membar_storestore"; break;
1616 case lir_membar_loadstore: s = "membar_loadstore"; break;
1617 case lir_membar_storeload: s = "membar_storeload"; break;
1610 case lir_word_align: s = "word_align"; break; 1618 case lir_word_align: s = "word_align"; break;
1611 case lir_label: s = "label"; break; 1619 case lir_label: s = "label"; break;
1612 case lir_nop: s = "nop"; break; 1620 case lir_nop: s = "nop"; break;
1613 case lir_backwardbranch_target: s = "backbranch"; break; 1621 case lir_backwardbranch_target: s = "backbranch"; break;
1614 case lir_std_entry: s = "std_entry"; break; 1622 case lir_std_entry: s = "std_entry"; break;