| 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 | 
| } | 
|  | 
|  | 
|  |