| Index: src/mips64/macro-assembler-mips64.cc
 | 
| diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
 | 
| index f238c52427ee0eb9e8d0869fa1f9ac0419b37085..c5ca43bae5dee8dc08d60e60bc46826487a363d3 100644
 | 
| --- a/src/mips64/macro-assembler-mips64.cc
 | 
| +++ b/src/mips64/macro-assembler-mips64.cc
 | 
| @@ -1595,7 +1595,19 @@
 | 
|  }
 | 
|  
 | 
|  void MacroAssembler::li(Register dst, Handle<Object> value, LiFlags mode) {
 | 
| -  li(dst, Operand(value), mode);
 | 
| +  AllowDeferredHandleDereference smi_check;
 | 
| +  if (value->IsSmi()) {
 | 
| +    li(dst, Operand(value), mode);
 | 
| +  } else {
 | 
| +    DCHECK(value->IsHeapObject());
 | 
| +    if (isolate()->heap()->InNewSpace(*value)) {
 | 
| +      Handle<Cell> cell = isolate()->factory()->NewCell(value);
 | 
| +      li(dst, Operand(cell));
 | 
| +      ld(dst, FieldMemOperand(dst, Cell::kValueOffset));
 | 
| +    } else {
 | 
| +      li(dst, Operand(value));
 | 
| +    }
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  static inline int64_t ShiftAndFixSignExtension(int64_t imm, int bitnum) {
 | 
| 
 |