summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Andra Danciu <andradanciu@google.com> 2020-07-23 12:34:56 +0000
committer Orion Hodson <oth@google.com> 2020-07-24 10:11:54 +0000
commita0130e8d2842a9a82e4fd4e811ee699272eb2e0b (patch)
tree1468e015b7c4b001e40d847cf1448311706516e7 /compiler/optimizing/nodes.h
parent75c8b635178d0c59691c2bc22f3bd1101d5516b5 (diff)
Prepare compiler for adding VarHandle support.
This commit prepares the ground for adding VarHandle support in the compiler. The intrinsic locations builder and code generator are now triggered for HInvokePolymorphic nodes. VarHandle and MethodHandle intrinsics are marked as unimplemented rather than unreachable. Since the Varhandle intrinsics are not implemented yet, the functionality is not changed (i.e. the intrinsics are evaluated at runtime and not compiled). I manually tested that the intrinsic Visit* methods are triggered for the VarHandle methods. Bug: b/65872996 Test: art/test.py --host -r -t 713-varhandle-invokers Test: art/test.py --host --all-compiler -r Change-Id: I3333728c5f16d8dc4f92ceae2738ed59b3e31e6a
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 214c7baad0..e6e60b7837 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -4507,7 +4507,8 @@ class HInvokePolymorphic final : public HInvoke {
uint32_t number_of_arguments,
DataType::Type return_type,
uint32_t dex_pc,
- uint32_t dex_method_index)
+ uint32_t dex_method_index,
+ ArtMethod* resolved_method)
: HInvoke(kInvokePolymorphic,
allocator,
number_of_arguments,
@@ -4515,7 +4516,7 @@ class HInvokePolymorphic final : public HInvoke {
return_type,
dex_pc,
dex_method_index,
- nullptr,
+ resolved_method,
kVirtual) {
}