From 4d02711ea578dbb789abb30cbaf12f9926e13d81 Mon Sep 17 00:00:00 2001 From: Roland Levillain Date: Wed, 1 Jul 2015 15:41:14 +0100 Subject: Implement heap poisoning in ART's Optimizing compiler. - Instrument ARM, ARM64, x86 and x86-64 code generators. - Note: To turn heap poisoning on in Optimizing, set the environment variable `ART_HEAP_POISONING' to "true" before compiling ART. Bug: 12687968 Change-Id: Ib3120b38cf805a8a50207a314b9ccc90c8d93740 --- compiler/utils/arm/assembler_arm.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'compiler/utils/arm/assembler_arm.cc') diff --git a/compiler/utils/arm/assembler_arm.cc b/compiler/utils/arm/assembler_arm.cc index 0086fe8c49..09d22703fe 100644 --- a/compiler/utils/arm/assembler_arm.cc +++ b/compiler/utils/arm/assembler_arm.cc @@ -529,13 +529,13 @@ void ArmAssembler::CopyRef(FrameOffset dest, FrameOffset src, } void ArmAssembler::LoadRef(ManagedRegister mdest, ManagedRegister base, MemberOffset offs, - bool poison_reference) { + bool unpoison_reference) { ArmManagedRegister dst = mdest.AsArm(); CHECK(dst.IsCoreRegister() && dst.IsCoreRegister()) << dst; LoadFromOffset(kLoadWord, dst.AsCoreRegister(), base.AsArm().AsCoreRegister(), offs.Int32Value()); - if (kPoisonHeapReferences && poison_reference) { - rsb(dst.AsCoreRegister(), dst.AsCoreRegister(), ShifterOperand(0)); + if (unpoison_reference) { + MaybeUnpoisonHeapReference(dst.AsCoreRegister()); } } -- cgit v1.2.3-59-g8ed1b