| Index: src/mips/lithium-mips.cc | 
| diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc | 
| index 736890e6cd58d5c542acc36c9a4e542bd4b0d8ba..22726078e5039741c4a11cf87126ce748e9ad819 100644 | 
| --- a/src/mips/lithium-mips.cc | 
| +++ b/src/mips/lithium-mips.cc | 
| @@ -2005,12 +2005,16 @@ LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) { | 
|  | 
| LInstruction* LChunkBuilder::DoTransitionElementsKind( | 
| HTransitionElementsKind* instr) { | 
| +  LOperand* object = UseRegister(instr->object()); | 
| if (IsSimpleMapChangeTransition(instr->from_kind(), instr->to_kind())) { | 
| -    LOperand* object = UseRegister(instr->object()); | 
| LOperand* new_map_reg = TempRegister(); | 
| LTransitionElementsKind* result = | 
| new(zone()) LTransitionElementsKind(object, new_map_reg, NULL); | 
| return DefineSameAsFirst(result); | 
| +  } else if (FLAG_compiled_transitions) { | 
| +    LTransitionElementsKind* result = | 
| +        new(zone()) LTransitionElementsKind(object, NULL, NULL); | 
| +    return AssignPointerMap(result); | 
| } else { | 
| LOperand* object = UseFixed(instr->object(), a0); | 
| LOperand* fixed_object_reg = FixedTemp(a2); | 
| @@ -2019,11 +2023,21 @@ LInstruction* LChunkBuilder::DoTransitionElementsKind( | 
| new(zone()) LTransitionElementsKind(object, | 
| new_map_reg, | 
| fixed_object_reg); | 
| -    return MarkAsCall(DefineFixed(result, v0), instr); | 
| +    return MarkAsCall(result, instr); | 
| } | 
| } | 
|  | 
|  | 
| +LInstruction* LChunkBuilder::DoTrapAllocationMemento( | 
| +    HTrapAllocationMemento* instr) { | 
| +  LOperand* object = UseRegister(instr->object()); | 
| +  LOperand* temp = TempRegister(); | 
| +  LTrapAllocationMemento* result = | 
| +      new(zone()) LTrapAllocationMemento(object, temp); | 
| +  return AssignEnvironment(result); | 
| +} | 
| + | 
| + | 
| LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { | 
| bool needs_write_barrier = instr->NeedsWriteBarrier(); | 
| bool needs_write_barrier_for_map = !instr->transition().is_null() && | 
| @@ -2090,12 +2104,23 @@ LInstruction* LChunkBuilder::DoStringLength(HStringLength* instr) { | 
|  | 
|  | 
| LInstruction* LChunkBuilder::DoAllocateObject(HAllocateObject* instr) { | 
| +  info()->MarkAsDeferredCalling(); | 
| LAllocateObject* result = | 
| new(zone()) LAllocateObject(TempRegister(), TempRegister()); | 
| return AssignPointerMap(DefineAsRegister(result)); | 
| } | 
|  | 
|  | 
| +LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) { | 
| +  info()->MarkAsDeferredCalling(); | 
| +  LOperand* size = UseTempRegister(instr->size()); | 
| +  LOperand* temp1 = TempRegister(); | 
| +  LOperand* temp2 = TempRegister(); | 
| +  LAllocate* result = new(zone()) LAllocate(size, temp1, temp2); | 
| +  return AssignPointerMap(DefineAsRegister(result)); | 
| +} | 
| + | 
| + | 
| LInstruction* LChunkBuilder::DoFastLiteral(HFastLiteral* instr) { | 
| return MarkAsCall(DefineFixed(new(zone()) LFastLiteral, v0), instr); | 
| } | 
|  |