2009-09-10 Ivan Maidanski <ivmai@mail.ru>
(diff110)
* src/atomic_ops/sysdeps/msftc/arm.h: New file (initial support
for ARM family).
* src/atomic_ops/sysdeps/msftc/common32_defs.h: New file.
* src/atomic_ops/sysdeps/msftc/arm.h (AO_ASSUME_ARM_ARCH6): New
macro.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_USE_INTERLOCKED_INTRINSICS): Ditto.
* src/atomic_ops/sysdeps/msftc/x86.h: Move "Interlocked"
declarations to common32_defs.h.
* src/atomic_ops/sysdeps/msftc/common32_defs.h
(AO_INTERLOCKED_VOLATILE): New macro defined (used by
Interlocked-based primitives) for compatibility with older VC++.
* src/atomic_ops/sysdeps/msftc/common32_defs.h: Don't include
missing <intrin.h> if WinCE target.
* src/atomic_ops/sysdeps/msftc/x86.h: Include common32_defs.h
(define AO_USE_INTERLOCKED_INTRINSICS unconditionally).
* src/atomic_ops/sysdeps/msftc/x86.h (AO_fetch_and_add_full,
AO_fetch_and_add1_full, AO_fetch_and_sub1_full,
AO_compare_and_swap_full): Move arch-independent primitives to
common32_defs.h.
* src/atomic_ops/sysdeps/msftc/x86.h: Remove comment about i486 or
better CPU (since Interlocked Add and Xchg primitives are available
on any 32-bit CPU).
* src/atomic_ops.h: Include msftc/x86.h even if _M_IX86 is less than
400 (for i80386).
* src/atomic_ops.h: Include msftc/x86.h if "x86" defined (for WinCE
on x86).
* src/atomic_ops.h: Include msftc/arm.h if ARM target (for WinCE).