Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 2133) |
+++ src/objects.h (working copy) |
@@ -1163,10 +1163,17 @@ |
// Layout description. |
static const int kValueOffset = HeapObject::kHeaderSize; |
// IEEE doubles are two 32 bit words. The first is just mantissa, the second |
- // is a mixture of sign, exponent and mantissa. This is the ordering on a |
- // little endian machine with little endian double word ordering. |
+ // is a mixture of sign, exponent and mantissa. Our current platforms are all |
+ // little endian apart from non-EABI arm which is little endian with big |
+ // endian floating point word ordering! |
+#if !defined(V8_HOST_ARCH_ARM) || __ARM_EABI__ |
static const int kMantissaOffset = kValueOffset; |
static const int kExponentOffset = kValueOffset + 4; |
+#else |
+ static const int kMantissaOffset = kValueOffset + 4; |
+ static const int kExponentOffset = kValueOffset; |
+# define BIG_ENDIAN_FLOATING_POINT |
iposva
2009/06/10 16:22:28
Please define BIG_ENDIAN_FLOATING_POINT to carry a
|
+#endif |
static const int kSize = kValueOffset + kDoubleSize; |
static const uint32_t kSignMask = 0x80000000u; |