| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 8b4b26397e322f7817b33124d5f7ef06c93fb88e..4becf6e305e1ce29a36eac853688445a169aa21c 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -17,19 +17,17 @@ 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] = *reinterpret_cast<uint32_t*>(p);
|
| - c.u[1] = *reinterpret_cast<uint32_t*>(p + 4);
|
| + c.u[0] = Memory::uint32_at(p);
|
| + c.u[1] = Memory::uint32_at(p + 4);
|
| return c.d;
|
| -#endif // V8_HOST_CAN_READ_UNALIGNED
|
| }
|
|
|
|
|
|
|