| Index: src/arm/macro-assembler-arm.cc
 | 
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
 | 
| index 5c064c1c21611888c5f65393373e76c2ae0e73cf..067a05d6df232a64cee7211d3ca010276d854dbb 100644
 | 
| --- a/src/arm/macro-assembler-arm.cc
 | 
| +++ b/src/arm/macro-assembler-arm.cc
 | 
| @@ -290,7 +290,7 @@ void MacroAssembler::Move(Register dst, Register src, Condition cond) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void MacroAssembler::Move(DoubleRegister dst, DoubleRegister src) {
 | 
| +void MacroAssembler::Move(DwVfpRegister dst, DwVfpRegister src) {
 | 
|    ASSERT(CpuFeatures::IsSupported(VFP2));
 | 
|    CpuFeatures::Scope scope(VFP2);
 | 
|    if (!dst.is(src)) {
 | 
| @@ -643,19 +643,19 @@ void MacroAssembler::PopSafepointRegisters() {
 | 
|  
 | 
|  void MacroAssembler::PushSafepointRegistersAndDoubles() {
 | 
|    PushSafepointRegisters();
 | 
| -  sub(sp, sp, Operand(DwVfpRegister::kNumAllocatableRegisters *
 | 
| +  sub(sp, sp, Operand(DwVfpRegister::NumAllocatableRegisters() *
 | 
|                        kDoubleSize));
 | 
| -  for (int i = 0; i < DwVfpRegister::kNumAllocatableRegisters; i++) {
 | 
| +  for (int i = 0; i < DwVfpRegister::NumAllocatableRegisters(); i++) {
 | 
|      vstr(DwVfpRegister::FromAllocationIndex(i), sp, i * kDoubleSize);
 | 
|    }
 | 
|  }
 | 
|  
 | 
|  
 | 
|  void MacroAssembler::PopSafepointRegistersAndDoubles() {
 | 
| -  for (int i = 0; i < DwVfpRegister::kNumAllocatableRegisters; i++) {
 | 
| +  for (int i = 0; i < DwVfpRegister::NumAllocatableRegisters(); i++) {
 | 
|      vldr(DwVfpRegister::FromAllocationIndex(i), sp, i * kDoubleSize);
 | 
|    }
 | 
| -  add(sp, sp, Operand(DwVfpRegister::kNumAllocatableRegisters *
 | 
| +  add(sp, sp, Operand(DwVfpRegister::NumAllocatableRegisters() *
 | 
|                        kDoubleSize));
 | 
|    PopSafepointRegisters();
 | 
|  }
 | 
| @@ -691,7 +691,7 @@ MemOperand MacroAssembler::SafepointRegisterSlot(Register reg) {
 | 
|  
 | 
|  MemOperand MacroAssembler::SafepointRegistersAndDoublesSlot(Register reg) {
 | 
|    // General purpose registers are pushed last on the stack.
 | 
| -  int doubles_size = DwVfpRegister::kNumAllocatableRegisters * kDoubleSize;
 | 
| +  int doubles_size = DwVfpRegister::NumAllocatableRegisters() * kDoubleSize;
 | 
|    int register_offset = SafepointRegisterStackIndex(reg.code()) * kPointerSize;
 | 
|    return MemOperand(sp, doubles_size + register_offset);
 | 
|  }
 | 
| @@ -967,7 +967,7 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles,
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -void MacroAssembler::GetCFunctionDoubleResult(const DoubleRegister dst) {
 | 
| +void MacroAssembler::GetCFunctionDoubleResult(const DwVfpRegister dst) {
 | 
|    ASSERT(CpuFeatures::IsSupported(VFP2));
 | 
|    if (use_eabi_hardfloat()) {
 | 
|      Move(dst, d0);
 | 
| @@ -2717,7 +2717,10 @@ void MacroAssembler::CallRuntimeSaveDoubles(Runtime::FunctionId id) {
 | 
|    const Runtime::Function* function = Runtime::FunctionForId(id);
 | 
|    mov(r0, Operand(function->nargs));
 | 
|    mov(r1, Operand(ExternalReference(function, isolate())));
 | 
| -  CEntryStub stub(1, kSaveFPRegs);
 | 
| +  SaveFPRegsMode mode = CpuFeatures::IsSupported(VFP2)
 | 
| +      ? kSaveFPRegs
 | 
| +      : kDontSaveFPRegs;
 | 
| +  CEntryStub stub(1, mode);
 | 
|    CallStub(&stub);
 | 
|  }
 | 
|  
 | 
| @@ -3393,9 +3396,9 @@ int MacroAssembler::CalculateStackPassedWords(int num_reg_arguments,
 | 
|    if (use_eabi_hardfloat()) {
 | 
|      // In the hard floating point calling convention, we can use
 | 
|      // all double registers to pass doubles.
 | 
| -    if (num_double_arguments > DoubleRegister::kNumRegisters) {
 | 
| +    if (num_double_arguments > DoubleRegister::NumRegisters()) {
 | 
|        stack_passed_words +=
 | 
| -          2 * (num_double_arguments - DoubleRegister::kNumRegisters);
 | 
| +          2 * (num_double_arguments - DoubleRegister::NumRegisters());
 | 
|      }
 | 
|    } else {
 | 
|      // In the soft floating point calling convention, every double
 | 
| @@ -3436,7 +3439,7 @@ void MacroAssembler::PrepareCallCFunction(int num_reg_arguments,
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg) {
 | 
| +void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg) {
 | 
|    ASSERT(CpuFeatures::IsSupported(VFP2));
 | 
|    if (use_eabi_hardfloat()) {
 | 
|      Move(d0, dreg);
 | 
| @@ -3446,8 +3449,8 @@ void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg1,
 | 
| -                                             DoubleRegister dreg2) {
 | 
| +void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg1,
 | 
| +                                             DwVfpRegister dreg2) {
 | 
|    ASSERT(CpuFeatures::IsSupported(VFP2));
 | 
|    if (use_eabi_hardfloat()) {
 | 
|      if (dreg2.is(d0)) {
 | 
| @@ -3465,7 +3468,7 @@ void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg1,
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void MacroAssembler::SetCallCDoubleArguments(DoubleRegister dreg,
 | 
| +void MacroAssembler::SetCallCDoubleArguments(DwVfpRegister dreg,
 | 
|                                               Register reg) {
 | 
|    ASSERT(CpuFeatures::IsSupported(VFP2));
 | 
|    if (use_eabi_hardfloat()) {
 | 
| @@ -3748,8 +3751,8 @@ void MacroAssembler::ClampUint8(Register output_reg, Register input_reg) {
 | 
|  
 | 
|  
 | 
|  void MacroAssembler::ClampDoubleToUint8(Register result_reg,
 | 
| -                                        DoubleRegister input_reg,
 | 
| -                                        DoubleRegister temp_double_reg) {
 | 
| +                                        DwVfpRegister input_reg,
 | 
| +                                        DwVfpRegister temp_double_reg) {
 | 
|    Label above_zero;
 | 
|    Label done;
 | 
|    Label in_bounds;
 | 
| 
 |