diff options
-rw-r--r-- | compiler/utils/arm/jni_macro_assembler_arm_vixl.cc | 4 | ||||
-rw-r--r-- | compiler/utils/jni_macro_assembler.cc | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc b/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc index f20ed0a0d0..fb6f172cb0 100644 --- a/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc +++ b/compiler/utils/arm/jni_macro_assembler_arm_vixl.cc @@ -564,6 +564,8 @@ void ArmVIXLJNIMacroAssembler::CallFromThread(ThreadOffset32 offset ATTRIBUTE_UN } void ArmVIXLJNIMacroAssembler::GetCurrentThread(ManagedRegister mtr) { + UseScratchRegisterScope temps(asm_.GetVIXLAssembler()); + temps.Exclude(mtr.AsArm().AsVIXLRegister()); ___ Mov(mtr.AsArm().AsVIXLRegister(), tr); } @@ -608,6 +610,8 @@ void ArmVIXLJNIMacroAssembler::Jump(JNIMacroLabel* label, ManagedRegister test) { CHECK(label != nullptr); + UseScratchRegisterScope temps(asm_.GetVIXLAssembler()); + temps.Exclude(test.AsArm().AsVIXLRegister()); switch (condition) { case JNIMacroUnaryCondition::kZero: ___ CompareAndBranchIfZero(test.AsArm().AsVIXLRegister(), diff --git a/compiler/utils/jni_macro_assembler.cc b/compiler/utils/jni_macro_assembler.cc index 1b743134ed..2f154fb862 100644 --- a/compiler/utils/jni_macro_assembler.cc +++ b/compiler/utils/jni_macro_assembler.cc @@ -20,7 +20,7 @@ #include <vector> #ifdef ART_ENABLE_CODEGEN_arm -#include "arm/jni_macro_assembler_arm.h" +#include "arm/jni_macro_assembler_arm_vixl.h" #endif #ifdef ART_ENABLE_CODEGEN_arm64 #include "arm64/jni_macro_assembler_arm64.h" @@ -58,7 +58,7 @@ MacroAsm32UniquePtr JNIMacroAssembler<PointerSize::k32>::Create( #ifdef ART_ENABLE_CODEGEN_arm case kArm: case kThumb2: - return MacroAsm32UniquePtr(new (arena) arm::ArmJNIMacroAssembler(arena, instruction_set)); + return MacroAsm32UniquePtr(new (arena) arm::ArmVIXLJNIMacroAssembler(arena)); #endif #ifdef ART_ENABLE_CODEGEN_mips case kMips: |