14 #ifndef ATOMICADJUSTI386IMPL_H 15 #define ATOMICADJUSTI386IMPL_H 20 #if (defined(__i386__) || defined(_M_IX86)) && !defined(__APPLE__) 29 class EXPCL_DTOOL_DTOOLBASE AtomicAdjustI386Impl {
31 typedef ALIGN_4BYTE int32_t Integer;
32 typedef void *UnalignedPointer;
33 typedef ALIGN_4BYTE UnalignedPointer Pointer;
35 INLINE
static void inc(TVOLATILE Integer &var);
36 INLINE
static bool dec(TVOLATILE Integer &var);
37 INLINE
static Integer add(TVOLATILE Integer &var, Integer delta);
38 INLINE
static Integer set(TVOLATILE Integer &var, Integer new_value);
39 INLINE
static Integer get(
const TVOLATILE Integer &var);
41 INLINE
static Pointer set_ptr(TVOLATILE Pointer &var, Pointer new_value);
42 INLINE
static Pointer get_ptr(
const TVOLATILE Pointer &var);
44 INLINE
static Integer compare_and_exchange(TVOLATILE Integer &mem,
48 INLINE
static Pointer compare_and_exchange_ptr(TVOLATILE Pointer &mem,
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.