| Index: src/deoptimizer.h
 | 
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
 | 
| index 602a21a0e20b199e7ca9a229b79c0be5be9c4783..5d401deedd6c8d9f06c15b7f9b61a3f352680176 100644
 | 
| --- a/src/deoptimizer.h
 | 
| +++ b/src/deoptimizer.h
 | 
| @@ -17,17 +17,19 @@ namespace internal {
 | 
|  
 | 
|  
 | 
|  static inline double read_double_value(Address p) {
 | 
| +#ifdef V8_HOST_CAN_READ_UNALIGNED
 | 
| +  return Memory::double_at(p);
 | 
| +#else  // V8_HOST_CAN_READ_UNALIGNED
 | 
|    // Prevent gcc from using load-double (mips ldc1) on (possibly)
 | 
|    // non-64-bit aligned address.
 | 
| -  // We assume that the address is 32-bit aligned.
 | 
| -  DCHECK(IsAligned(reinterpret_cast<intptr_t>(p), kInt32Size));
 | 
|    union conversion {
 | 
|      double d;
 | 
|      uint32_t u[2];
 | 
|    } c;
 | 
| -  c.u[0] = Memory::uint32_at(p);
 | 
| -  c.u[1] = Memory::uint32_at(p + 4);
 | 
| +  c.u[0] = *reinterpret_cast<uint32_t*>(p);
 | 
| +  c.u[1] = *reinterpret_cast<uint32_t*>(p + 4);
 | 
|    return c.d;
 | 
| +#endif  // V8_HOST_CAN_READ_UNALIGNED
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |