[Arm64] JIT_WriteBarrier optimization (#12227)
authorSteve MacLean <sdmaclea.qdt@qualcommdatacenter.com>
Thu, 15 Jun 2017 06:35:49 +0000 (02:35 -0400)
committerJan Kotas <jkotas@microsoft.com>
Thu, 15 Jun 2017 06:35:49 +0000 (23:35 -0700)
commitb5914c8d1b20be898b8982a4dfcf9d8e9046b2ec
tree7bad2aa4dca92f78e509092bb5dea35668386208
parent34320b9242f4e16eedcb9adc2f0901702b19deac
[Arm64] JIT_WriteBarrier optimization (#12227)

* [Arm64] JIT_WriteBarrier optimization

Add skipEphemeralCheck if gcServer=1

Copy all gc parameters into a literal pool which
fits in single cache line

Add dmb ishst on gcHeap changes

Reduce unpredictable branches

Remove unneeded instructiuons

Fixes #11374
Fixes #12197

* [Arm64] fix typo in asm

* Fixup asm

* [Arm64] Revise per comments

Nits - Whitespace, Labels to PascalCase
Fix state change order
Add Suspend/Resume to fix race
Fix errors in Windows arm64 assembly

* [Arm64] Remove SuspendEE/RestartEE in StompWriteBarrierResize

* Use Volatile<> for g_highest_address

* Revise synchronization per comments
src/vm/arm64/asmhelpers.S
src/vm/arm64/asmhelpers.asm
src/vm/arm64/stubs.cpp
src/vm/gcenv.ee.cpp