r191590 - Implements some of the more commonly used intrinsics in Intrin.h

Timur Iskhodzhanov timurrrr at google.com
Mon Sep 30 03:58:34 PDT 2013


2013/9/28 Warren Hunt <whunt at google.com>:
> +static __inline__
>  long __cdecl _InterlockedExchangeAdd(long volatile *_Addend, long _Value);
> ...
> +static __inline__ short __attribute__((__always_inline__, __nodebug__))
> +_InterlockedExchangeAdd16(short volatile *_Addend, short _Value) {
> +  return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
> +}
> +static __inline__ long __attribute__((__always_inline__, __nodebug__))
> +_InterlockedExchangeAdd(long volatile *_Addend, long _Value) {
> +  return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
> +}

Are you sure this is a correct/complete implementation?
http://llvm.org/bugs/show_bug.cgi?id=13283#c5



More information about the cfe-commits mailing list