summaryrefslogtreecommitdiff
path: root/runtime/entrypoints/quick/quick_entrypoints.h
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2015-12-15 12:39:34 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-12-15 12:39:34 +0000
commit089ff4886aa9b5e7cec04d2ef5cdeb9d68e5dc43 (patch)
tree84ad42399e1055f3596d7df6f786d9f7b8605ee3 /runtime/entrypoints/quick/quick_entrypoints.h
parentbd00c8226ebc28d2745ac4d0408b11c156771773 (diff)
parent7c1559a06041c9c299d5ab514d54b2102f204a84 (diff)
Merge "x86 Baker's read barrier fast path implementation."
Diffstat (limited to 'runtime/entrypoints/quick/quick_entrypoints.h')
-rw-r--r--runtime/entrypoints/quick/quick_entrypoints.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/runtime/entrypoints/quick/quick_entrypoints.h b/runtime/entrypoints/quick/quick_entrypoints.h
index 27865e3dc4..f5b68fa922 100644
--- a/runtime/entrypoints/quick/quick_entrypoints.h
+++ b/runtime/entrypoints/quick/quick_entrypoints.h
@@ -79,11 +79,17 @@ extern void ReadBarrierJni(mirror::CompressedReference<mirror::Object>* handle_o
// functions directly. For x86 and x86-64, compilers need a wrapper
// assembly function, to handle mismatch in ABI.
+// Mark the heap reference `obj`. This entry point is used by read
+// barrier fast path implementations generated by the compiler to mark
+// an object that is referenced by a field of a gray object.
+extern "C" mirror::Object* artReadBarrierMark(mirror::Object* obj)
+ SHARED_REQUIRES(Locks::mutator_lock_) HOT_ATTR;
+
// Read barrier entrypoint for heap references.
-// This is the read barrier slow path for instance and static fields and reference-type arrays.
-// TODO: Currently the read barrier does not have a fast path for compilers to directly generate.
-// Ideally the slow path should only take one parameter "ref".
-extern "C" mirror::Object* artReadBarrierSlow(mirror::Object* ref, mirror::Object* obj,
+// This is the read barrier slow path for instance and static fields
+// and reference type arrays.
+extern "C" mirror::Object* artReadBarrierSlow(mirror::Object* ref,
+ mirror::Object* obj,
uint32_t offset)
SHARED_REQUIRES(Locks::mutator_lock_) HOT_ATTR;