summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.cc
diff options
context:
space:
mode:
author Orion Hodson <oth@google.com> 2017-01-16 12:05:10 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-01-16 12:05:11 +0000
commit58207cfd229d9f0b39fc634cff489dac83e1c010 (patch)
tree4d3bca052542942fc7364a4c639378d61c354b4f /compiler/optimizing/code_generator.cc
parent4cddd03950bb21e950afd72cad87e963bc53ea10 (diff)
parentac141397dc29189ad2b2df41f8d4312246beec60 (diff)
Merge "Revert "Revert "ART: Compiler support for invoke-polymorphic."""
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r--compiler/optimizing/code_generator.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index f00648f570..9ca7b1997d 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -367,6 +367,12 @@ void CodeGenerator::GenerateInvokeUnresolvedRuntimeCall(HInvokeUnresolved* invok
InvokeRuntime(entrypoint, invoke, invoke->GetDexPc(), nullptr);
}
+void CodeGenerator::GenerateInvokePolymorphicCall(HInvokePolymorphic* invoke) {
+ MoveConstant(invoke->GetLocations()->GetTemp(0), static_cast<int32_t>(invoke->GetType()));
+ QuickEntrypointEnum entrypoint = kQuickInvokePolymorphic;
+ InvokeRuntime(entrypoint, invoke, invoke->GetDexPc(), nullptr);
+}
+
void CodeGenerator::CreateUnresolvedFieldLocationSummary(
HInstruction* field_access,
Primitive::Type field_type,