diff options
author | Vladimir Marko <vmarko@google.com> | 2016-07-07 12:07:44 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2016-07-07 14:01:26 +0100 |
commit | 8c5d310b8ac3bdce41cdc680fcad791c321eaec2 (patch) | |
tree | fb3e2055fb8afd580ab740e29d73b1eb3be6f8d8 /compiler/optimizing/code_generator_arm.cc | |
parent | 74c0d1bb67f9c6ee8306f0318ab7251d56dc99d6 (diff) |
ARM: Remove unnecessary VMOV from float/double-to-int.
Test: Run standard ART test suite on Nexus 5.
Change-Id: I780fd0cca68f89401d2a114e1022bed498d02979
Diffstat (limited to 'compiler/optimizing/code_generator_arm.cc')
-rw-r--r-- | compiler/optimizing/code_generator_arm.cc | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/compiler/optimizing/code_generator_arm.cc b/compiler/optimizing/code_generator_arm.cc index 5316d59bff..e441f825bc 100644 --- a/compiler/optimizing/code_generator_arm.cc +++ b/compiler/optimizing/code_generator_arm.cc @@ -2290,8 +2290,7 @@ void InstructionCodeGeneratorARM::VisitTypeConversion(HTypeConversion* conversio case Primitive::kPrimFloat: { // Processing a Dex `float-to-int' instruction. SRegister temp = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>(); - __ vmovs(temp, in.AsFpuRegister<SRegister>()); - __ vcvtis(temp, temp); + __ vcvtis(temp, in.AsFpuRegister<SRegister>()); __ vmovrs(out.AsRegister<Register>(), temp); break; } @@ -2299,9 +2298,7 @@ void InstructionCodeGeneratorARM::VisitTypeConversion(HTypeConversion* conversio case Primitive::kPrimDouble: { // Processing a Dex `double-to-int' instruction. SRegister temp_s = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>(); - DRegister temp_d = FromLowSToD(temp_s); - __ vmovd(temp_d, FromLowSToD(in.AsFpuRegisterPairLow<SRegister>())); - __ vcvtid(temp_s, temp_d); + __ vcvtid(temp_s, FromLowSToD(in.AsFpuRegisterPairLow<SRegister>())); __ vmovrs(out.AsRegister<Register>(), temp_s); break; } |