/* In fact, we observe that this converges after a small fixed number */
/* of iterations, usually one. */
#include "atomic_ops/generalize.h"
+
+#ifdef AO_T_IS_INT
+ /* Included after the first generalization pass. */
+# include "atomic_ops/sysdeps/ao_t_is_int.h"
+# ifndef AO_GENERALIZE_TWICE
+ /* Always generalize again. */
+# define AO_GENERALIZE_TWICE
+# endif
+#endif /* AO_T_IS_INT */
+
#ifdef AO_GENERALIZE_TWICE
# include "atomic_ops/generalize.h"
#endif
}
#define AO_HAVE_compare_and_swap
-/* Generalize first to define more AO_int_... primitives. */
-#include "../../generalize.h"
-
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT
/* FIXME: Add compare_double_and_swap_double for the _ILP32 case. */
#ifdef _ILP32
- /* Generalize first to define more AO_int_... primitives. */
-# include "../../generalize.h"
-# include "../ao_t_is_int.h"
+# define AO_T_IS_INT
#endif
}
#define AO_HAVE_compare_and_swap_full
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT
* directly.
*/
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT
#define AO_HAVE_fetch_and_add_full
#if defined(__powerpc64__) || defined(__ppc64__) || defined(__64BIT__)
+ /* Empty */
#else
-# include "../ao_t_is_int.h"
+# define AO_T_IS_INT
#endif
}
#define AO_HAVE_compare_double_and_swap_double_full
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT
#define AO_HAVE_short_compare_and_swap_release
#ifndef __LP64__
- /* Generalize first to define more AO_int_... primitives. */
-# include "../../generalize.h"
-# include "../ao_t_is_int.h"
+# define AO_T_IS_INT
#endif
#endif /* AO_ASSUME_VISTA */
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT
#define AO_HAVE_compare_double_and_swap_double_full
#endif
-#include "../ao_t_is_int.h"
+#define AO_T_IS_INT