+2008-01-09 Hans Boehm <Hans.Boehm@hp.com>
+ * src/atomic_ops/sysdeps/standard_ao_double_t.h: Let
+ double_ptr_storage default to long long; define everywhere.
+
2008-01-08 Hans Boehm <Hans.Boehm@hp.com> (Really mostly Joerg Wagner)
* src/atomic_ops/sysdeps/msftc/x86.h: Conditionally add
compare_double_and_swap_double.
* Similar things could be done for PowerPC 64bit using a VMX data type... */
#if defined(__GNUC__)
-# if defined(__i386__)
- typedef unsigned long long double_ptr_storage;
-# endif /* __i386__ */
-# if defined(__arm__)
- typedef unsigned long long double_ptr_storage;
-# endif /* __arm__ */
# if defined(__x86_64__)
# include<xmmintrin.h>
- typedef __m128 double_ptr_storage;
+ typedef __m128 double_ptr_storage;
+# define AO_HAVE_DOUBLE_PTR_STORAGE
# endif /* __x86_64__ */
#endif
#ifdef _MSC_VER
# ifdef _WIN64
- typedef __m128 double_ptr_storage;
+ typedef __m128 double_ptr_storage;
+# define AO_HAVE_DOUBLE_PTR_STORAGE
# elif _WIN32
- typedef unsigned __int64 double_ptr_storage;
+ typedef unsigned __int64 double_ptr_storage;
+# define AO_HAVE_DOUBLE_PTR_STORAGE
# endif
#endif
+#ifndef AO_HAVE_DOUBLE_PTR_STORAGE
+ typedef unsigned long long double_ptr_storage;
+#endif
+
typedef union {
- double_ptr_storage AO_whole;
+ double_ptr_storage AO_whole;
struct {AO_t AO_v1; AO_t AO_v2;} AO_parts;
} AO_double_t;