Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index 602a21a0e20b199e7ca9a229b79c0be5be9c4783..1b6e814661f261f1b8cbd7976c55d8a7f2fcd1eb 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -17,17 +17,9 @@ namespace internal { |
static inline double read_double_value(Address p) { |
- // 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); |
- return c.d; |
+ double d; |
+ memcpy(&d, p, sizeof(d)); |
+ return d; |
} |