diff options
author | 2025-03-21 13:13:41 +0000 | |
---|---|---|
committer | 2025-03-22 07:07:51 -0700 | |
commit | 9c2a0a8bfc5369a110956ac26cf9cf145a6a4bb7 (patch) | |
tree | 0c4515489f562ad221fe641e2c3a02329b4cc616 | |
parent | 2371fcce4b16f06bf5d2280f0423264f9b948eb7 (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.cc | 2 |
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)); |