OSDN Git Service

Use entrypoint switching on x86 & x86-64 for GC root read barriers.
authorRoland Levillain <rpl@google.com>
Thu, 9 Feb 2017 16:20:14 +0000 (16:20 +0000)
committerRoland Levillain <rpl@google.com>
Thu, 9 Feb 2017 16:45:52 +0000 (16:45 +0000)
commitd966ce7739bebbdce5481900a1b3220b31f3f3ad
tree2dc80fcf35d1db73fa4b4a0fa9492d407a1b7a4b
parent8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf
Use entrypoint switching on x86 & x86-64 for GC root read barriers.

For consistency reason (with the ARM and ARM64 implementations),
check the read barrier marking entrypoint
(`Thread::Current()->pReadBarrierMarkReg ## root.reg()`)
instead of `Thread::Current()->GetIsGcMarking()` to decide whether
to mark a GC root.

This change should have no impact on the performance or the
size of the generated code.

Test: m test-art-host
Bug: 32638713
Change-Id: Ifd71312992fdfd6067447cccb7d95860f3771b57
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_x86.cc
compiler/optimizing/code_generator_x86_64.cc