arm: Implement VarHandle intrinsics for byte array views.
Using benchmarks provided by
https://android-review.googlesource.com/1420959
on blueline little cores with fixed frequency 1420800:
before after
GetByteArrayViewInt 28.989 0.028
SetByteArrayViewInt 30.114 0.028
GetByteArrayViewBigEndianInt 28.974 0.030
SetByteArrayViewBigEndianInt 30.130 0.030
Test: testrunner.py --target --32 --optimizing
Bug: 71781600
Change-Id: I40c1c2fdd829f17872c457994010f78549c895de
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index 64d49aa..252865f 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -4065,7 +4065,7 @@
// Check that the coordinateType0 is an array type. We do not need a read barrier
// for loading constant reference fields (or chains of them) for comparison with null,
- // or for finally loading a constant primitive field (primitive type) below.
+ // nor for finally loading a constant primitive field (primitive type) below.
__ Ldr(temp2, HeapOperand(temp, component_type_offset.Int32Value()));
codegen->GetAssembler()->MaybeUnpoisonHeapReference(temp2);
__ Cbz(temp2, slow_path->GetEntryLabel());