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