| Index: src/mips/lithium-codegen-mips.cc | 
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc | 
| index 9fa5f798002bcdc7e949f925e87355e0b99d65b7..7f04fa4009be75df63d7c7c4491791e21ecc4a0a 100644 | 
| --- a/src/mips/lithium-codegen-mips.cc | 
| +++ b/src/mips/lithium-codegen-mips.cc | 
| @@ -5828,17 +5828,15 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, | 
| __ LoadRoot(at, Heap::kNullValueRootIndex); | 
| __ Branch(USE_DELAY_SLOT, true_label, eq, at, Operand(input)); | 
| } | 
| -    // input is an object, it is safe to use GetObjectType in the delay slot. | 
| -    __ GetObjectType(input, input, scratch); | 
| -    __ Branch(USE_DELAY_SLOT, false_label, | 
| +    Register map = input; | 
| +    __ GetObjectType(input, map, scratch); | 
| +    __ Branch(false_label, | 
| lt, scratch, Operand(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE)); | 
| -    // Still an object, so the InstanceType can be loaded. | 
| -    __ lbu(scratch, FieldMemOperand(input, Map::kInstanceTypeOffset)); | 
| __ Branch(USE_DELAY_SLOT, false_label, | 
| gt, scratch, Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE)); | 
| -    // Still an object, so the BitField can be loaded. | 
| +    // map is still valid, so the BitField can be loaded in delay slot. | 
| // Check for undetectable objects => false. | 
| -    __ lbu(at, FieldMemOperand(input, Map::kBitFieldOffset)); | 
| +    __ lbu(at, FieldMemOperand(map, Map::kBitFieldOffset)); | 
| __ And(at, at, 1 << Map::kIsUndetectable); | 
| cmp1 = at; | 
| cmp2 = Operand(zero_reg); | 
|  |