| Index: src/x64/lithium-codegen-x64.cc
 | 
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
 | 
| index 91ed9678c5b43a45388282e9075ea5f1bb5ca0a0..1bbc1404d37cb7b816b930463cf5686c7436ad7a 100644
 | 
| --- a/src/x64/lithium-codegen-x64.cc
 | 
| +++ b/src/x64/lithium-codegen-x64.cc
 | 
| @@ -3368,7 +3368,7 @@ void LCodeGen::DoCallConstantFunction(LCallConstantFunction* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
 | 
|    Register input_reg = ToRegister(instr->value());
 | 
|    __ CompareRoot(FieldOperand(input_reg, HeapObject::kMapOffset),
 | 
|                   Heap::kHeapNumberMapRootIndex);
 | 
| @@ -3420,7 +3420,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::EmitIntegerMathAbs(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::EmitIntegerMathAbs(LMathAbs* instr) {
 | 
|    Register input_reg = ToRegister(instr->value());
 | 
|    __ testl(input_reg, input_reg);
 | 
|    Label is_positive;
 | 
| @@ -3431,19 +3431,18 @@ void LCodeGen::EmitIntegerMathAbs(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathAbs(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathAbs(LMathAbs* instr) {
 | 
|    // Class for deferred case.
 | 
|    class DeferredMathAbsTaggedHeapNumber: public LDeferredCode {
 | 
|     public:
 | 
| -    DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen,
 | 
| -                                    LUnaryMathOperation* instr)
 | 
| +    DeferredMathAbsTaggedHeapNumber(LCodeGen* codegen, LMathAbs* instr)
 | 
|          : LDeferredCode(codegen), instr_(instr) { }
 | 
|      virtual void Generate() {
 | 
|        codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
 | 
|      }
 | 
|      virtual LInstruction* instr() { return instr_; }
 | 
|     private:
 | 
| -    LUnaryMathOperation* instr_;
 | 
| +    LMathAbs* instr_;
 | 
|    };
 | 
|  
 | 
|    ASSERT(instr->value()->Equals(instr->result()));
 | 
| @@ -3471,7 +3470,7 @@ void LCodeGen::DoMathAbs(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathFloor(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathFloor(LMathFloor* instr) {
 | 
|    XMMRegister xmm_scratch = xmm0;
 | 
|    Register output_reg = ToRegister(instr->result());
 | 
|    XMMRegister input_reg = ToDoubleRegister(instr->value());
 | 
| @@ -3530,7 +3529,7 @@ void LCodeGen::DoMathFloor(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathRound(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathRound(LMathRound* instr) {
 | 
|    const XMMRegister xmm_scratch = xmm0;
 | 
|    Register output_reg = ToRegister(instr->result());
 | 
|    XMMRegister input_reg = ToDoubleRegister(instr->value());
 | 
| @@ -3591,14 +3590,14 @@ void LCodeGen::DoMathRound(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathSqrt(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathSqrt(LMathSqrt* instr) {
 | 
|    XMMRegister input_reg = ToDoubleRegister(instr->value());
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(input_reg));
 | 
|    __ sqrtsd(input_reg, input_reg);
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathPowHalf(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathPowHalf(LMathPowHalf* instr) {
 | 
|    XMMRegister xmm_scratch = xmm0;
 | 
|    XMMRegister input_reg = ToDoubleRegister(instr->value());
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(input_reg));
 | 
| @@ -3765,7 +3764,7 @@ void LCodeGen::DoMathExp(LMathExp* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathLog(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathLog(LMathLog* instr) {
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
 | 
|    TranscendentalCacheStub stub(TranscendentalCache::LOG,
 | 
|                                 TranscendentalCacheStub::UNTAGGED);
 | 
| @@ -3773,7 +3772,7 @@ void LCodeGen::DoMathLog(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathTan(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathTan(LMathTan* instr) {
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
 | 
|    TranscendentalCacheStub stub(TranscendentalCache::TAN,
 | 
|                                 TranscendentalCacheStub::UNTAGGED);
 | 
| @@ -3781,7 +3780,7 @@ void LCodeGen::DoMathTan(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathCos(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathCos(LMathCos* instr) {
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
 | 
|    TranscendentalCacheStub stub(TranscendentalCache::COS,
 | 
|                                 TranscendentalCacheStub::UNTAGGED);
 | 
| @@ -3789,7 +3788,7 @@ void LCodeGen::DoMathCos(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoMathSin(LUnaryMathOperation* instr) {
 | 
| +void LCodeGen::DoMathSin(LMathSin* instr) {
 | 
|    ASSERT(ToDoubleRegister(instr->result()).is(xmm1));
 | 
|    TranscendentalCacheStub stub(TranscendentalCache::SIN,
 | 
|                                 TranscendentalCacheStub::UNTAGGED);
 | 
| @@ -3797,42 +3796,6 @@ void LCodeGen::DoMathSin(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {
 | 
| -  switch (instr->op()) {
 | 
| -    case kMathAbs:
 | 
| -      DoMathAbs(instr);
 | 
| -      break;
 | 
| -    case kMathFloor:
 | 
| -      DoMathFloor(instr);
 | 
| -      break;
 | 
| -    case kMathRound:
 | 
| -      DoMathRound(instr);
 | 
| -      break;
 | 
| -    case kMathSqrt:
 | 
| -      DoMathSqrt(instr);
 | 
| -      break;
 | 
| -    case kMathPowHalf:
 | 
| -      DoMathPowHalf(instr);
 | 
| -      break;
 | 
| -    case kMathCos:
 | 
| -      DoMathCos(instr);
 | 
| -      break;
 | 
| -    case kMathSin:
 | 
| -      DoMathSin(instr);
 | 
| -      break;
 | 
| -    case kMathTan:
 | 
| -      DoMathTan(instr);
 | 
| -      break;
 | 
| -    case kMathLog:
 | 
| -      DoMathLog(instr);
 | 
| -      break;
 | 
| -
 | 
| -    default:
 | 
| -      UNREACHABLE();
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -
 | 
|  void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) {
 | 
|    ASSERT(ToRegister(instr->function()).is(rdi));
 | 
|    ASSERT(instr->HasPointerMap());
 | 
| 
 |