| Index: src/crankshaft/arm64/lithium-codegen-arm64.cc
 | 
| diff --git a/src/crankshaft/arm64/lithium-codegen-arm64.cc b/src/crankshaft/arm64/lithium-codegen-arm64.cc
 | 
| index 5bdbf0657d8549dc29371a12456ca97c734bfa1e..ba7100032d44b20a296467857cff20214d575c26 100644
 | 
| --- a/src/crankshaft/arm64/lithium-codegen-arm64.cc
 | 
| +++ b/src/crankshaft/arm64/lithium-codegen-arm64.cc
 | 
| @@ -179,9 +179,9 @@ class TestAndBranch : public BranchGenerator {
 | 
|  // Test the input and branch if it is non-zero and not a NaN.
 | 
|  class BranchIfNonZeroNumber : public BranchGenerator {
 | 
|   public:
 | 
| -  BranchIfNonZeroNumber(LCodeGen* codegen, const FPRegister& value,
 | 
| -                        const FPRegister& scratch)
 | 
| -    : BranchGenerator(codegen), value_(value), scratch_(scratch) { }
 | 
| +  BranchIfNonZeroNumber(LCodeGen* codegen, const VRegister& value,
 | 
| +                        const VRegister& scratch)
 | 
| +      : BranchGenerator(codegen), value_(value), scratch_(scratch) {}
 | 
|  
 | 
|    virtual void Emit(Label* label) const {
 | 
|      __ Fabs(scratch_, value_);
 | 
| @@ -198,8 +198,8 @@ class BranchIfNonZeroNumber : public BranchGenerator {
 | 
|    }
 | 
|  
 | 
|   private:
 | 
| -  const FPRegister& value_;
 | 
| -  const FPRegister& scratch_;
 | 
| +  const VRegister& value_;
 | 
| +  const VRegister& scratch_;
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -547,7 +547,7 @@ void LCodeGen::SaveCallerDoubles() {
 | 
|    while (!iterator.Done()) {
 | 
|      // TODO(all): Is this supposed to save just the callee-saved doubles? It
 | 
|      // looks like it's saving all of them.
 | 
| -    FPRegister value = FPRegister::from_code(iterator.Current());
 | 
| +    VRegister value = VRegister::from_code(iterator.Current());
 | 
|      __ Poke(value, count * kDoubleSize);
 | 
|      iterator.Advance();
 | 
|      count++;
 | 
| @@ -565,7 +565,7 @@ void LCodeGen::RestoreCallerDoubles() {
 | 
|    while (!iterator.Done()) {
 | 
|      // TODO(all): Is this supposed to restore just the callee-saved doubles? It
 | 
|      // looks like it's restoring all of them.
 | 
| -    FPRegister value = FPRegister::from_code(iterator.Current());
 | 
| +    VRegister value = VRegister::from_code(iterator.Current());
 | 
|      __ Peek(value, count * kDoubleSize);
 | 
|      iterator.Advance();
 | 
|      count++;
 | 
| @@ -1133,7 +1133,7 @@ MemOperand LCodeGen::ToMemOperand(LOperand* op, StackMode stack_mode) const {
 | 
|            (pushed_arguments_ + GetTotalFrameSlotCount()) * kPointerSize -
 | 
|            StandardFrameConstants::kFixedFrameSizeAboveFp;
 | 
|        int jssp_offset = fp_offset + jssp_offset_to_fp;
 | 
| -      if (masm()->IsImmLSScaled(jssp_offset, LSDoubleWord)) {
 | 
| +      if (masm()->IsImmLSScaled(jssp_offset, kPointerSizeLog2)) {
 | 
|          return MemOperand(masm()->StackPointer(), jssp_offset);
 | 
|        }
 | 
|      }
 | 
| @@ -1272,11 +1272,10 @@ void LCodeGen::EmitTestAndBranch(InstrType instr,
 | 
|    EmitBranchGeneric(instr, branch);
 | 
|  }
 | 
|  
 | 
| -
 | 
| -template<class InstrType>
 | 
| +template <class InstrType>
 | 
|  void LCodeGen::EmitBranchIfNonZeroNumber(InstrType instr,
 | 
| -                                         const FPRegister& value,
 | 
| -                                         const FPRegister& scratch) {
 | 
| +                                         const VRegister& value,
 | 
| +                                         const VRegister& scratch) {
 | 
|    BranchIfNonZeroNumber branch(this, value, scratch);
 | 
|    EmitBranchGeneric(instr, branch);
 | 
|  }
 | 
| @@ -2277,7 +2276,7 @@ void LCodeGen::DoClassOfTestAndBranch(LClassOfTestAndBranch* instr) {
 | 
|  
 | 
|  void LCodeGen::DoCmpHoleAndBranchD(LCmpHoleAndBranchD* instr) {
 | 
|    DCHECK(instr->hydrogen()->representation().IsDouble());
 | 
| -  FPRegister object = ToDoubleRegister(instr->object());
 | 
| +  VRegister object = ToDoubleRegister(instr->object());
 | 
|    Register temp = ToRegister(instr->temp());
 | 
|  
 | 
|    // If we don't have a NaN, we don't have the hole, so branch now to avoid the
 | 
| @@ -3274,7 +3273,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
 | 
|  
 | 
|    if (instr->hydrogen()->representation().IsDouble()) {
 | 
|      DCHECK(access.IsInobject());
 | 
| -    FPRegister result = ToDoubleRegister(instr->result());
 | 
| +    VRegister result = ToDoubleRegister(instr->result());
 | 
|      __ Ldr(result, FieldMemOperand(object, offset));
 | 
|      return;
 | 
|    }
 | 
| @@ -3434,7 +3433,7 @@ void LCodeGen::DoMathAbsTagged(LMathAbsTagged* instr) {
 | 
|  
 | 
|    // The result is the magnitude (abs) of the smallest value a smi can
 | 
|    // represent, encoded as a double.
 | 
| -  __ Mov(result_bits, double_to_rawbits(0x80000000));
 | 
| +  __ Mov(result_bits, bit_cast<uint64_t>(static_cast<double>(0x80000000)));
 | 
|    __ B(deferred->allocation_entry());
 | 
|  
 | 
|    __ Bind(deferred->exit());
 | 
| @@ -4976,7 +4975,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
 | 
|      DCHECK(access.IsInobject());
 | 
|      DCHECK(!instr->hydrogen()->has_transition());
 | 
|      DCHECK(!instr->hydrogen()->NeedsWriteBarrier());
 | 
| -    FPRegister value = ToDoubleRegister(instr->value());
 | 
| +    VRegister value = ToDoubleRegister(instr->value());
 | 
|      __ Str(value, FieldMemOperand(object, offset));
 | 
|      return;
 | 
|    }
 | 
| @@ -5014,7 +5013,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
 | 
|  
 | 
|    if (FLAG_unbox_double_fields && representation.IsDouble()) {
 | 
|      DCHECK(access.IsInobject());
 | 
| -    FPRegister value = ToDoubleRegister(instr->value());
 | 
| +    VRegister value = ToDoubleRegister(instr->value());
 | 
|      __ Str(value, FieldMemOperand(object, offset));
 | 
|    } else if (representation.IsSmi() &&
 | 
|               instr->hydrogen()->value()->representation().IsInteger32()) {
 | 
| 
 |