| Index: src/compiler/register-allocator.cc | 
| diff --git a/src/compiler/register-allocator.cc b/src/compiler/register-allocator.cc | 
| index 972a9045094a22ed2ceb355f0664e35b29201d6a..0dd358edb3aaedbc8e2a287f238c9dc47b75b1da 100644 | 
| --- a/src/compiler/register-allocator.cc | 
| +++ b/src/compiler/register-allocator.cc | 
| @@ -626,7 +626,7 @@ LiveRange* RegisterAllocator::FixedLiveRangeFor(int index) { | 
|  | 
|  | 
| LiveRange* RegisterAllocator::FixedDoubleLiveRangeFor(int index) { | 
| -  DCHECK(index < DoubleRegister::NumAllocatableRegisters()); | 
| +  DCHECK(index < DoubleRegister::NumAllocatableAliasedRegisters()); | 
| LiveRange* result = fixed_double_live_ranges_[index]; | 
| if (result == NULL) { | 
| result = new (zone()) LiveRange(FixedDoubleLiveRangeID(index), code_zone()); | 
| @@ -1016,7 +1016,8 @@ void RegisterAllocator::ProcessInstructions(BasicBlock* block, | 
| } | 
|  | 
| if (instr->ClobbersDoubleRegisters()) { | 
| -        for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); ++i) { | 
| +        for (int i = 0; i < DoubleRegister::NumAllocatableAliasedRegisters(); | 
| +             ++i) { | 
| if (!IsOutputDoubleRegisterOf(instr, i)) { | 
| LiveRange* range = FixedDoubleLiveRangeFor(i); | 
| range->AddUseInterval(curr_position, curr_position.InstructionEnd(), | 
| @@ -1110,7 +1111,7 @@ bool RegisterAllocator::Allocate() { | 
| assigned_registers_ = new (code_zone()) | 
| BitVector(Register::NumAllocatableRegisters(), code_zone()); | 
| assigned_double_registers_ = new (code_zone()) | 
| -      BitVector(DoubleRegister::NumAllocatableRegisters(), code_zone()); | 
| +      BitVector(DoubleRegister::NumAllocatableAliasedRegisters(), code_zone()); | 
| MeetRegisterConstraints(); | 
| if (!AllocationOk()) return false; | 
| ResolvePhis(); | 
| @@ -1514,7 +1515,7 @@ void RegisterAllocator::AllocateGeneralRegisters() { | 
|  | 
| void RegisterAllocator::AllocateDoubleRegisters() { | 
| RegisterAllocatorPhase phase("L_Allocate double registers", this); | 
| -  num_registers_ = DoubleRegister::NumAllocatableRegisters(); | 
| +  num_registers_ = DoubleRegister::NumAllocatableAliasedRegisters(); | 
| mode_ = DOUBLE_REGISTERS; | 
| AllocateRegisters(); | 
| } | 
| @@ -1538,7 +1539,7 @@ void RegisterAllocator::AllocateRegisters() { | 
| DCHECK(inactive_live_ranges_.is_empty()); | 
|  | 
| if (mode_ == DOUBLE_REGISTERS) { | 
| -    for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); ++i) { | 
| +    for (int i = 0; i < DoubleRegister::NumAllocatableAliasedRegisters(); ++i) { | 
| LiveRange* current = fixed_double_live_ranges_.at(i); | 
| if (current != NULL) { | 
| AddToInactive(current); | 
|  |