summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Almaz Mingaleev <mingaleev@google.com> 2025-03-21 13:13:41 +0000
committer Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-03-22 07:07:51 -0700
commit9c2a0a8bfc5369a110956ac26cf9cf145a6a4bb7 (patch)
tree0c4515489f562ad221fe641e2c3a02329b4cc616
parent2371fcce4b16f06bf5d2280f0423264f9b948eb7 (diff)
arm64: fix reference unpoisoning in invokeExact intrinsic.
As reference is read from heap it should be unpoisoned. Bug: 297147201 Test: ART_HEAP_POISONING=true art/test/testrunner/testrunner.py \ -b --target --64 -t 2277 Change-Id: I0d19af3b3b4326a443f6a80316cbc02c42092944
-rw-r--r--compiler/optimizing/intrinsics_arm64.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index c4f8681631..4eb73019fd 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -6131,7 +6131,7 @@ void IntrinsicCodeGeneratorARM64::VisitMethodHandleInvokeExact(HInvoke* invoke)
__ Bind(&do_imt_dispatch);
// Re-using `method` to store receiver class and ImTableEntry.
__ Ldr(method.W(), HeapOperand(receiver.W(), mirror::Object::ClassOffset()));
- codegen_->GetAssembler()->MaybePoisonHeapReference(method.W());
+ codegen_->GetAssembler()->MaybeUnpoisonHeapReference(method.W());
__ Ldr(method, MemOperand(method, mirror::Class::ImtPtrOffset(PointerSize::k64).Int32Value()));
__ Ldr(method, MemOperand(method, temp, Extend::UXTW, 3u));