X86: Implement VarHandle.set() for fields.
This commit implements VarHandle set access mode for fields (both static
and instance). This also implied refactorizing the common parts of get
and set access modes (e.g. coordinate type checks).
Non-constant Int64 set value is not implemented.
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: I384c09e08f7a772fc7ec372b1ebb5f882ecc5586
diff --git a/compiler/optimizing/instruction_builder.cc b/compiler/optimizing/instruction_builder.cc
index 84d79e5..a3630af 100644
--- a/compiler/optimizing/instruction_builder.cc
+++ b/compiler/optimizing/instruction_builder.cc
@@ -1165,7 +1165,8 @@
return_type,
dex_pc,
method_idx,
- resolved_method);
+ resolved_method,
+ proto_idx);
if (!HandleInvoke(invoke, operands, shorty, /* is_unresolved= */ false)) {
return false;