Fix Reference.refersTo() intrinsic for heap poisoning.
Test: ART_HEAP_POISONING=true m test-art-host-gtest
Test: ART_HEAP_POISONING=true testrunner.py --host --optimizing
Test: run-gtests.sh # with ART_HEAP_POISONING=true
Test: testrunner.py --target --optimizing # with ART_HEAP_POISONING=true
Bug: 172573708
Change-Id: I2e09b49813bdad40c1e18bf5681ba2094c5a40c1
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index 6774a26..d58d8f4 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -3311,6 +3311,7 @@
MemOperand field = HeapOperand(obj, referent_offset);
codegen_->LoadAcquire(invoke, DataType::Type::kReference, tmp, field, /*needs_null_check=*/ true);
+ codegen_->GetAssembler()->MaybeUnpoisonHeapReference(tmp);
__ Cmp(tmp, other);