diff options
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
| -rw-r--r-- | compiler/optimizing/code_generator.cc | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index 2a9a7b37ab..e6fe0679f6 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -189,6 +189,9 @@ void CodeGenerator::AllocateRegistersLocally(HInstruction* instruction) const {        if (loc.GetPolicy() == Location::kRequiresRegister) {          loc = Location::RegisterLocation(              AllocateFreeRegister(input->GetType(), blocked_registers_)); +      } else if (loc.GetPolicy() == Location::kRequiresFpuRegister) { +        loc = Location::FpuRegisterLocation( +            AllocateFreeRegister(input->GetType(), blocked_registers_));        } else {          DCHECK_EQ(loc.GetPolicy(), Location::kAny);          HLoadLocal* load = input->AsLoadLocal(); @@ -223,6 +226,10 @@ void CodeGenerator::AllocateRegistersLocally(HInstruction* instruction) const {          result_location = Location::RegisterLocation(              AllocateFreeRegister(instruction->GetType(), blocked_registers_));          break; +      case Location::kRequiresFpuRegister: +        result_location = Location::FpuRegisterLocation( +            AllocateFreeRegister(instruction->GetType(), blocked_registers_)); +        break;        case Location::kSameAsFirstInput:          result_location = locations->InAt(0);          break; |