| Index: src/x64/code-stubs-x64.cc | 
| =================================================================== | 
| --- src/x64/code-stubs-x64.cc	(revision 7711) | 
| +++ src/x64/code-stubs-x64.cc	(working copy) | 
| @@ -1736,91 +1736,6 @@ | 
| } | 
|  | 
|  | 
| -void GenericUnaryOpStub::Generate(MacroAssembler* masm) { | 
| -  Label slow, done; | 
| - | 
| -  if (op_ == Token::SUB) { | 
| -    if (include_smi_code_) { | 
| -      // Check whether the value is a smi. | 
| -      Label try_float; | 
| -      __ JumpIfNotSmi(rax, &try_float); | 
| -      if (negative_zero_ == kIgnoreNegativeZero) { | 
| -        __ SmiCompare(rax, Smi::FromInt(0)); | 
| -        __ j(equal, &done); | 
| -      } | 
| -      __ SmiNeg(rax, rax, &done); | 
| -      __ jmp(&slow);  // zero, if not handled above, and Smi::kMinValue. | 
| - | 
| -      // Try floating point case. | 
| -      __ bind(&try_float); | 
| -    } else if (FLAG_debug_code) { | 
| -      __ AbortIfSmi(rax); | 
| -    } | 
| - | 
| -    __ CompareRoot(FieldOperand(rax, HeapObject::kMapOffset), | 
| -                   Heap::kHeapNumberMapRootIndex); | 
| -    __ j(not_equal, &slow); | 
| -    // Operand is a float, negate its value by flipping sign bit. | 
| -    __ movq(rdx, FieldOperand(rax, HeapNumber::kValueOffset)); | 
| -    __ Set(kScratchRegister, 0x01); | 
| -    __ shl(kScratchRegister, Immediate(63)); | 
| -    __ xor_(rdx, kScratchRegister);  // Flip sign. | 
| -    // rdx is value to store. | 
| -    if (overwrite_ == UNARY_OVERWRITE) { | 
| -      __ movq(FieldOperand(rax, HeapNumber::kValueOffset), rdx); | 
| -    } else { | 
| -      __ AllocateHeapNumber(rcx, rbx, &slow); | 
| -      // rcx: allocated 'empty' number | 
| -      __ movq(FieldOperand(rcx, HeapNumber::kValueOffset), rdx); | 
| -      __ movq(rax, rcx); | 
| -    } | 
| -  } else if (op_ == Token::BIT_NOT) { | 
| -    if (include_smi_code_) { | 
| -      Label try_float; | 
| -      __ JumpIfNotSmi(rax, &try_float); | 
| -      __ SmiNot(rax, rax); | 
| -      __ jmp(&done); | 
| -      // Try floating point case. | 
| -      __ bind(&try_float); | 
| -    } else if (FLAG_debug_code) { | 
| -      __ AbortIfSmi(rax); | 
| -    } | 
| - | 
| -    // Check if the operand is a heap number. | 
| -    __ CompareRoot(FieldOperand(rax, HeapObject::kMapOffset), | 
| -                   Heap::kHeapNumberMapRootIndex); | 
| -    __ j(not_equal, &slow); | 
| - | 
| -    // Convert the heap number in rax to an untagged integer in rcx. | 
| -    IntegerConvert(masm, rax, rax); | 
| - | 
| -    // Do the bitwise operation and smi tag the result. | 
| -    __ notl(rax); | 
| -    __ Integer32ToSmi(rax, rax); | 
| -  } | 
| - | 
| -  // Return from the stub. | 
| -  __ bind(&done); | 
| -  __ StubReturn(1); | 
| - | 
| -  // Handle the slow case by jumping to the JavaScript builtin. | 
| -  __ bind(&slow); | 
| -  __ pop(rcx);  // pop return address | 
| -  __ push(rax); | 
| -  __ push(rcx);  // push return address | 
| -  switch (op_) { | 
| -    case Token::SUB: | 
| -      __ InvokeBuiltin(Builtins::UNARY_MINUS, JUMP_FUNCTION); | 
| -      break; | 
| -    case Token::BIT_NOT: | 
| -      __ InvokeBuiltin(Builtins::BIT_NOT, JUMP_FUNCTION); | 
| -      break; | 
| -    default: | 
| -      UNREACHABLE(); | 
| -  } | 
| -} | 
| - | 
| - | 
| void MathPowStub::Generate(MacroAssembler* masm) { | 
| // Registers are used as follows: | 
| // rdx = base | 
|  |