OSDN Git Service

ARM: VIXL32: Fix "Align allocation entrypoints..".
authorArtem Serov <artem.serov@linaro.org>
Fri, 3 Feb 2017 17:30:34 +0000 (17:30 +0000)
committerArtem Serov <artem.serov@linaro.org>
Mon, 6 Feb 2017 18:48:11 +0000 (18:48 +0000)
Add missing changes for VIXL backend to
https://android-review.googlesource.com/#/c/330124/.

Test: m test-art-host
Test: m test-art-target
Change-Id: Ic8383a7a426cbe8501e12838e9728fc3f359f03d

compiler/optimizing/code_generator_arm_vixl.cc

index 0d31d83..433947a 100644 (file)
@@ -4005,8 +4005,11 @@ void LocationsBuilderARMVIXL::VisitNewArray(HNewArray* instruction) {
 void InstructionCodeGeneratorARMVIXL::VisitNewArray(HNewArray* instruction) {
   // Note: if heap poisoning is enabled, the entry point takes cares
   // of poisoning the reference.
-  codegen_->InvokeRuntime(kQuickAllocArrayResolved, instruction, instruction->GetDexPc());
+  QuickEntrypointEnum entrypoint =
+      CodeGenerator::GetArrayAllocationEntrypoint(instruction->GetLoadClass()->GetClass());
+  codegen_->InvokeRuntime(entrypoint, instruction, instruction->GetDexPc());
   CheckEntrypointTypes<kQuickAllocArrayResolved, void*, mirror::Class*, int32_t>();
+  DCHECK(!codegen_->IsLeafMethod());
 }
 
 void LocationsBuilderARMVIXL::VisitParameterValue(HParameterValue* instruction) {