summaryrefslogtreecommitdiff
path: root/compiler/optimizing/instruction_builder.cc
diff options
context:
space:
mode:
authorAndra Danciu <andradanciu@google.com>2020-08-28 11:49:44 +0000
committerVladimir Marko <vmarko@google.com>2020-09-02 08:09:01 +0000
commit0875b0ad9825077ca7a9043552272ac0732130f2 (patch)
treec10937f48321cc2fa6cdcd597e9a00bff753fae6 /compiler/optimizing/instruction_builder.cc
parentdd3b57fc4912f92e397f8904549af67652c6891b (diff)
X86: Extend VarHandle.get() to work with instance fields.
Test: ART_HEAP_POISONING=true art/test.py --host --32 -r -t 712-varhandle-invocations Test: ART_HEAP_POISONING=false art/test.py --host --32 -r -t 712-varhandle-invocations Bug: 65872996 Change-Id: Ie64baf4d7d9bf3422c0e41b30d95ea903c2fabaa
Diffstat (limited to 'compiler/optimizing/instruction_builder.cc')
-rw-r--r--compiler/optimizing/instruction_builder.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/optimizing/instruction_builder.cc b/compiler/optimizing/instruction_builder.cc
index f5cdf3607b..84d79e5d2d 100644
--- a/compiler/optimizing/instruction_builder.cc
+++ b/compiler/optimizing/instruction_builder.cc
@@ -1174,8 +1174,8 @@ bool HInstructionBuilder::BuildInvokePolymorphic(uint32_t dex_pc,
bool needs_ret_type_check =
resolved_method->GetIntrinsic() == static_cast<uint32_t>(Intrinsics::kVarHandleGet) &&
return_type == DataType::Type::kReference &&
- // VarHandle.get() is only implemented for static fields for now.
- number_of_arguments == 1u;
+ // VarHandle.get() is only implemented for fields now.
+ number_of_arguments < 3u;
if (needs_ret_type_check) {
ScopedObjectAccess soa(Thread::Current());
ArtMethod* referrer = graph_->GetArtMethod();