summaryrefslogtreecommitdiff
path: root/src/compiler/codegen
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2013-01-04 15:32:48 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2013-01-04 15:32:48 -0800
commit05bcbc1a0394d5aa8f247e2ec175ff8f97926c78 (patch)
treeb64c8e8099d49b340e550687c0fab3e7618968b1 /src/compiler/codegen
parent6641ea12b98dda9ec45d29f20e43f85698b88a02 (diff)
parentfffdb023275613612a22ec62b3421ffe4d2b73fe (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.cc5
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);
}