blob: 65270a5bc50543627045c7f6c722c3df8dfd74bf [file] [log] [blame]
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#define __CRT__NO_INLINE
#include <windows.h>
SHORT InterlockedDecrement16(SHORT volatile *Addend);
SHORT InterlockedDecrement16(SHORT volatile *Addend)
{
SHORT ret = -1;
__asm__ __volatile__ ("lock\n\t"
"xaddw %0,%1"
: "+r" (ret), "+m" (*Addend)
: : "memory");
return ret - 1;
}