summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Calin Juravle <calin@google.com> 2015-08-25 15:42:32 +0100
committer Calin Juravle <calin@google.com> 2015-09-17 12:29:51 +0100
commit175dc732c80e6f2afd83209348124df349290ba8 (patch)
tree6a5f45136832f73138ced75fcd3c6110b74116ea /compiler/optimizing/nodes.h
parent5d01db1aa7634a012109d43e6403451b76de1daa (diff)
Support unresolved methods in Optimizing
Change-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 70002addea..90ff20cf4c 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -1033,6 +1033,7 @@ class HLoopInformationOutwardIterator : public ValueObject {
M(InstanceFieldSet, Instruction) \
M(InstanceOf, Instruction) \
M(IntConstant, Constant) \
+ M(InvokeUnresolved, Invoke) \
M(InvokeInterface, Invoke) \
M(InvokeStaticOrDirect, Invoke) \
M(InvokeVirtual, Invoke) \
@@ -3057,6 +3058,29 @@ class HInvoke : public HInstruction {
DISALLOW_COPY_AND_ASSIGN(HInvoke);
};
+class HInvokeUnresolved : public HInvoke {
+ public:
+ HInvokeUnresolved(ArenaAllocator* arena,
+ uint32_t number_of_arguments,
+ Primitive::Type return_type,
+ uint32_t dex_pc,
+ uint32_t dex_method_index,
+ InvokeType invoke_type)
+ : HInvoke(arena,
+ number_of_arguments,
+ 0u /* number_of_other_inputs */,
+ return_type,
+ dex_pc,
+ dex_method_index,
+ invoke_type) {
+ }
+
+ DECLARE_INSTRUCTION(InvokeUnresolved);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(HInvokeUnresolved);
+};
+
class HInvokeStaticOrDirect : public HInvoke {
public:
// Requirements of this method call regarding the class