diff options
author | Roland Levillain <rpl@google.com> | 2015-04-28 11:00:54 +0100 |
---|---|---|
committer | Roland Levillain <rpl@google.com> | 2015-04-28 11:00:54 +0100 |
commit | 3e3d73349a2de81d14e2279f60ffbd9ab3f3ac28 (patch) | |
tree | 69ad3378263c9a4b967cb7e27de0027264c12eb6 /compiler/optimizing/intrinsics_arm.cc | |
parent | a0ee862288b702468f8c2b6d0ad0f1c61be0b483 (diff) | |
download | art-3e3d73349a2de81d14e2279f60ffbd9ab3f3ac28.tar.gz art-3e3d73349a2de81d14e2279f60ffbd9ab3f3ac28.tar.bz2 art-3e3d73349a2de81d14e2279f60ffbd9ab3f3ac28.zip |
Have HInvoke instructions know their number of actual arguments.
Add an art::HInvoke::GetNumberOfArguments routine so that
art::HInvoke and its subclasses can return the number of
actual arguments of the called method. Use it in code
generators and intrinsics handlers.
Consequently, no longer remove a clinit check as last input
of a static invoke if it is still present during baseline
code generation, but ensure that static invokes have no such
check as last input in optimized compilations.
Change-Id: Iaf9e07d1057a3b15b83d9638538c02b70211e476
Diffstat (limited to 'compiler/optimizing/intrinsics_arm.cc')
-rw-r--r-- | compiler/optimizing/intrinsics_arm.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/optimizing/intrinsics_arm.cc b/compiler/optimizing/intrinsics_arm.cc index abdf04ebb1..84bcd902dd 100644 --- a/compiler/optimizing/intrinsics_arm.cc +++ b/compiler/optimizing/intrinsics_arm.cc @@ -78,7 +78,7 @@ static void MoveFromReturnRegister(Location trg, Primitive::Type type, CodeGener } static void MoveArguments(HInvoke* invoke, ArenaAllocator* arena, CodeGeneratorARM* codegen) { - if (invoke->InputCount() == 0) { + if (invoke->GetNumberOfArguments() == 0) { // No argument to move. return; } @@ -90,7 +90,7 @@ static void MoveArguments(HInvoke* invoke, ArenaAllocator* arena, CodeGeneratorA // a parallel move resolver. HParallelMove parallel_move(arena); - for (size_t i = 0; i < invoke->InputCount(); i++) { + for (size_t i = 0; i < invoke->GetNumberOfArguments(); i++) { HInstruction* input = invoke->InputAt(i); Location cc_loc = calling_convention_visitor.GetNextLocation(input->GetType()); Location actual_loc = locations->InAt(i); |