Commit c2ef2edf authored by André Hentschel's avatar André Hentschel Committed by Alexandre Julliard

libport: Implemented the interlocked_cmpxchg128 function for ARM64.

parent 16954b3a
......@@ -313,6 +313,28 @@ __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compare )
return compare;
}
#ifdef __aarch64__
int interlocked_cmpxchg128( __int64 *dest, __int64 xchg_high, __int64 xchg_low, __int64 *compare )
{
int retv;
pthread_mutex_lock( &interlocked_mutex );
if (dest[0] == compare[0] && dest[1] == compare[1])
{
dest[0] = xchg_low;
dest[1] = xchg_high;
retv = 1;
}
else
{
compare[0] = dest[0];
compare[1] = dest[1];
retv = 0;
}
pthread_mutex_unlock( &interlocked_mutex );
return retv;
}
#endif
int interlocked_xchg( int *dest, int val )
{
int retv;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment