diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2014-07-14 13:00:14 -0700 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2014-07-14 13:00:14 -0700 |
commit | ab088118d33caafb00815ab72ac0fd7374169f64 (patch) | |
tree | 9ca1473bb6d4e896f8b8d5c19341dcba1ad37cd5 /runtime/arch/arm64 | |
parent | e8b8086388159be5fecb23ae6185e70f3dfb5da6 (diff) | |
download | art-ab088118d33caafb00815ab72ac0fd7374169f64.tar.gz art-ab088118d33caafb00815ab72ac0fd7374169f64.tar.bz2 art-ab088118d33caafb00815ab72ac0fd7374169f64.zip |
Add read barriers for the roots in Runtime.
Bug: 12687968
Change-Id: If26518a8251702cfe4d5cd7d1f50e80e342704cf
Diffstat (limited to 'runtime/arch/arm64')
-rw-r--r-- | runtime/arch/arm64/asm_support_arm64.h | 1 | ||||
-rw-r--r-- | runtime/arch/arm64/quick_entrypoints_arm64.S | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/runtime/arch/arm64/asm_support_arm64.h b/runtime/arch/arm64/asm_support_arm64.h index 422e20cf44..f353408baa 100644 --- a/runtime/arch/arm64/asm_support_arm64.h +++ b/runtime/arch/arm64/asm_support_arm64.h @@ -21,6 +21,7 @@ // TODO Thread offsets need to be checked when on Aarch64. +// Note: these callee save methods loads require read barriers. // Offset of field Runtime::callee_save_methods_[kSaveAll] #define RUNTIME_SAVE_ALL_CALLEE_SAVE_FRAME_OFFSET 0 // Offset of field Runtime::callee_save_methods_[kRefsOnly] diff --git a/runtime/arch/arm64/quick_entrypoints_arm64.S b/runtime/arch/arm64/quick_entrypoints_arm64.S index 7907b6ee13..2201b55849 100644 --- a/runtime/arch/arm64/quick_entrypoints_arm64.S +++ b/runtime/arch/arm64/quick_entrypoints_arm64.S @@ -31,6 +31,7 @@ ldr x9,[x9] // x9 = & (art::Runtime * art::Runtime.instance_) . // x9 = (ArtMethod*) Runtime.instance_.callee_save_methods[kRefAndArgs] . + THIS_LOAD_REQUIRES_READ_BARRIER ldr x9, [x9, RUNTIME_SAVE_ALL_CALLEE_SAVE_FRAME_OFFSET ] sub sp, sp, #368 @@ -109,6 +110,7 @@ ldr x9,[x9] // x9 = & (art::Runtime * art::Runtime.instance_) . // x9 = (ArtMethod*) Runtime.instance_.callee_save_methods[kRefAndArgs] . + THIS_LOAD_REQUIRES_READ_BARRIER ldr x9, [x9, RUNTIME_REFS_ONLY_CALLEE_SAVE_FRAME_OFFSET ] sub sp, sp, #176 @@ -280,6 +282,7 @@ ldr x9,[x9] // x9 = & (art::Runtime * art::Runtime.instance_) . // x9 = (ArtMethod*) Runtime.instance_.callee_save_methods[kRefAndArgs] . + THIS_LOAD_REQUIRES_READ_BARRIER ldr x9, [x9, RUNTIME_REF_AND_ARGS_CALLEE_SAVE_FRAME_OFFSET ] SETUP_REF_AND_ARGS_CALLEE_SAVE_FRAME_INTERNAL |