diff options
| author | 2013-01-04 15:32:48 -0800 | |
|---|---|---|
| committer | 2013-01-04 15:32:48 -0800 | |
| commit | 05bcbc1a0394d5aa8f247e2ec175ff8f97926c78 (patch) | |
| tree | b64c8e8099d49b340e550687c0fab3e7618968b1 /src/compiler/codegen | |
| parent | 6641ea12b98dda9ec45d29f20e43f85698b88a02 (diff) | |
| parent | fffdb023275613612a22ec62b3421ffe4d2b73fe (diff) | |
Merge "Add memory barrier for final instance fields." into dalvik-dev
Diffstat (limited to 'src/compiler/codegen')
| -rw-r--r-- | src/compiler/codegen/mir_to_lir.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/compiler/codegen/mir_to_lir.cc b/src/compiler/codegen/mir_to_lir.cc index acdeafe32c..1d64661c5d 100644 --- a/src/compiler/codegen/mir_to_lir.cc +++ b/src/compiler/codegen/mir_to_lir.cc @@ -86,6 +86,11 @@ static bool CompileDalvikInstruction(CompilationUnit* cu, MIR* mir, BasicBlock* cg->GenMoveException(cu, rl_dest); break; case Instruction::RETURN_VOID: + if (((cu->access_flags & kAccConstructor) != 0) && + cu->compiler->RequiresConstructorBarrier(Thread::Current(), cu->dex_file, + cu->class_def_idx)) { + cg->GenMemBarrier(cu, kStoreStore); + } if (!(cu->attrs & METHOD_IS_LEAF)) { cg->GenSuspendTest(cu, opt_flags); } |