diff options
Diffstat (limited to 'runtime/entrypoints/quick/quick_entrypoints.h')
| -rw-r--r-- | runtime/entrypoints/quick/quick_entrypoints.h | 14 |
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; |