mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
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:
parent
a94cb97f4a
commit
3e904497b1
18 changed files with 155 additions and 1 deletions
|
@ -464,6 +464,10 @@ void LIR_OpVisitState::visit(LIR_Op* op) {
|
|||
case lir_membar: // result and info always invalid
|
||||
case lir_membar_acquire: // result and info always invalid
|
||||
case lir_membar_release: // result and info always invalid
|
||||
case lir_membar_loadload: // result and info always invalid
|
||||
case lir_membar_storestore: // result and info always invalid
|
||||
case lir_membar_loadstore: // result and info always invalid
|
||||
case lir_membar_storeload: // result and info always invalid
|
||||
{
|
||||
assert(op->as_Op0() != NULL, "must be");
|
||||
assert(op->_info == NULL, "info not used by this instruction");
|
||||
|
@ -1607,6 +1611,10 @@ const char * LIR_Op::name() const {
|
|||
case lir_membar: s = "membar"; break;
|
||||
case lir_membar_acquire: s = "membar_acquire"; break;
|
||||
case lir_membar_release: s = "membar_release"; break;
|
||||
case lir_membar_loadload: s = "membar_loadload"; break;
|
||||
case lir_membar_storestore: s = "membar_storestore"; break;
|
||||
case lir_membar_loadstore: s = "membar_loadstore"; break;
|
||||
case lir_membar_storeload: s = "membar_storeload"; break;
|
||||
case lir_word_align: s = "word_align"; break;
|
||||
case lir_label: s = "label"; break;
|
||||
case lir_nop: s = "nop"; break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue