1
/* NEC LE-IT: For 64Bit OS we extend the double type to hold two int64's
3
* x86-64: __m128 serves as placeholder which also requires the compiler
4
* to align it on 16 byte boundary (as required by cmpxchg16.
5
* Similar things could be done for PowerPC 64bit using a VMX data type... */
8
# if defined(__x86_64__)
10
typedef __m128 double_ptr_storage;
11
# define AO_HAVE_DOUBLE_PTR_STORAGE
12
# endif /* __x86_64__ */
17
typedef __m128 double_ptr_storage;
18
# define AO_HAVE_DOUBLE_PTR_STORAGE
20
typedef unsigned __int64 double_ptr_storage;
21
# define AO_HAVE_DOUBLE_PTR_STORAGE
25
#ifndef AO_HAVE_DOUBLE_PTR_STORAGE
26
typedef unsigned long long double_ptr_storage;
30
double_ptr_storage AO_whole;
31
struct {AO_t AO_v1; AO_t AO_v2;} AO_parts;
34
#define AO_HAVE_double_t
35
#define AO_val1 AO_parts.AO_v1
36
#define AO_val2 AO_parts.AO_v2