vcomp: Implement atomic float functions.
This commit is contained in:
parent
c68a63e474
commit
2a0890fe55
|
@ -286,6 +286,50 @@ void CDECL _vcomp_atomic_xor_i4(int *dest, int val)
|
|||
do old = *dest; while (interlocked_cmpxchg(dest, old ^ val, old) != old);
|
||||
}
|
||||
|
||||
void CDECL _vcomp_atomic_add_r4(float *dest, float val)
|
||||
{
|
||||
int old, new;
|
||||
do
|
||||
{
|
||||
old = *(int *)dest;
|
||||
*(float *)&new = *(float *)&old + val;
|
||||
}
|
||||
while (interlocked_cmpxchg((int *)dest, new, old) != old);
|
||||
}
|
||||
|
||||
void CDECL _vcomp_atomic_div_r4(float *dest, float val)
|
||||
{
|
||||
int old, new;
|
||||
do
|
||||
{
|
||||
old = *(int *)dest;
|
||||
*(float *)&new = *(float *)&old / val;
|
||||
}
|
||||
while (interlocked_cmpxchg((int *)dest, new, old) != old);
|
||||
}
|
||||
|
||||
void CDECL _vcomp_atomic_mul_r4(float *dest, float val)
|
||||
{
|
||||
int old, new;
|
||||
do
|
||||
{
|
||||
old = *(int *)dest;
|
||||
*(float *)&new = *(float *)&old * val;
|
||||
}
|
||||
while (interlocked_cmpxchg((int *)dest, new, old) != old);
|
||||
}
|
||||
|
||||
void CDECL _vcomp_atomic_sub_r4(float *dest, float val)
|
||||
{
|
||||
int old, new;
|
||||
do
|
||||
{
|
||||
old = *(int *)dest;
|
||||
*(float *)&new = *(float *)&old - val;
|
||||
}
|
||||
while (interlocked_cmpxchg((int *)dest, new, old) != old);
|
||||
}
|
||||
|
||||
int CDECL omp_get_dynamic(void)
|
||||
{
|
||||
TRACE("stub\n");
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@ stub _vcomp_atomic_add_i2
|
||||
@ cdecl _vcomp_atomic_add_i4(ptr long)
|
||||
@ stub _vcomp_atomic_add_i8
|
||||
@ stub _vcomp_atomic_add_r4
|
||||
@ cdecl _vcomp_atomic_add_r4(ptr float)
|
||||
@ stub _vcomp_atomic_add_r8
|
||||
@ stub _vcomp_atomic_and_i1
|
||||
@ stub _vcomp_atomic_and_i2
|
||||
|
@ -12,7 +12,7 @@
|
|||
@ stub _vcomp_atomic_div_i2
|
||||
@ cdecl _vcomp_atomic_div_i4(ptr long)
|
||||
@ stub _vcomp_atomic_div_i8
|
||||
@ stub _vcomp_atomic_div_r4
|
||||
@ cdecl _vcomp_atomic_div_r4(ptr float)
|
||||
@ stub _vcomp_atomic_div_r8
|
||||
@ stub _vcomp_atomic_div_ui1
|
||||
@ stub _vcomp_atomic_div_ui2
|
||||
|
@ -22,7 +22,7 @@
|
|||
@ stub _vcomp_atomic_mul_i2
|
||||
@ cdecl _vcomp_atomic_mul_i4(ptr long)
|
||||
@ stub _vcomp_atomic_mul_i8
|
||||
@ stub _vcomp_atomic_mul_r4
|
||||
@ cdecl _vcomp_atomic_mul_r4(ptr float)
|
||||
@ stub _vcomp_atomic_mul_r8
|
||||
@ stub _vcomp_atomic_or_i1
|
||||
@ stub _vcomp_atomic_or_i2
|
||||
|
@ -44,7 +44,7 @@
|
|||
@ stub _vcomp_atomic_sub_i2
|
||||
@ cdecl _vcomp_atomic_sub_i4(ptr long)
|
||||
@ stub _vcomp_atomic_sub_i8
|
||||
@ stub _vcomp_atomic_sub_r4
|
||||
@ cdecl _vcomp_atomic_sub_r4(ptr float)
|
||||
@ stub _vcomp_atomic_sub_r8
|
||||
@ stub _vcomp_atomic_xor_i1
|
||||
@ stub _vcomp_atomic_xor_i2
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@ stub _vcomp_atomic_add_i2
|
||||
@ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4
|
||||
@ stub _vcomp_atomic_add_i8
|
||||
@ stub _vcomp_atomic_add_r4
|
||||
@ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4
|
||||
@ stub _vcomp_atomic_add_r8
|
||||
@ stub _vcomp_atomic_and_i1
|
||||
@ stub _vcomp_atomic_and_i2
|
||||
|
@ -12,7 +12,7 @@
|
|||
@ stub _vcomp_atomic_div_i2
|
||||
@ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4
|
||||
@ stub _vcomp_atomic_div_i8
|
||||
@ stub _vcomp_atomic_div_r4
|
||||
@ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4
|
||||
@ stub _vcomp_atomic_div_r8
|
||||
@ stub _vcomp_atomic_div_ui1
|
||||
@ stub _vcomp_atomic_div_ui2
|
||||
|
@ -22,7 +22,7 @@
|
|||
@ stub _vcomp_atomic_mul_i2
|
||||
@ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4
|
||||
@ stub _vcomp_atomic_mul_i8
|
||||
@ stub _vcomp_atomic_mul_r4
|
||||
@ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4
|
||||
@ stub _vcomp_atomic_mul_r8
|
||||
@ stub _vcomp_atomic_or_i1
|
||||
@ stub _vcomp_atomic_or_i2
|
||||
|
@ -44,7 +44,7 @@
|
|||
@ stub _vcomp_atomic_sub_i2
|
||||
@ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4
|
||||
@ stub _vcomp_atomic_sub_i8
|
||||
@ stub _vcomp_atomic_sub_r4
|
||||
@ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4
|
||||
@ stub _vcomp_atomic_sub_r8
|
||||
@ stub _vcomp_atomic_xor_i1
|
||||
@ stub _vcomp_atomic_xor_i2
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@ stub _vcomp_atomic_add_i2
|
||||
@ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4
|
||||
@ stub _vcomp_atomic_add_i8
|
||||
@ stub _vcomp_atomic_add_r4
|
||||
@ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4
|
||||
@ stub _vcomp_atomic_add_r8
|
||||
@ stub _vcomp_atomic_and_i1
|
||||
@ stub _vcomp_atomic_and_i2
|
||||
|
@ -12,7 +12,7 @@
|
|||
@ stub _vcomp_atomic_div_i2
|
||||
@ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4
|
||||
@ stub _vcomp_atomic_div_i8
|
||||
@ stub _vcomp_atomic_div_r4
|
||||
@ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4
|
||||
@ stub _vcomp_atomic_div_r8
|
||||
@ stub _vcomp_atomic_div_ui1
|
||||
@ stub _vcomp_atomic_div_ui2
|
||||
|
@ -22,7 +22,7 @@
|
|||
@ stub _vcomp_atomic_mul_i2
|
||||
@ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4
|
||||
@ stub _vcomp_atomic_mul_i8
|
||||
@ stub _vcomp_atomic_mul_r4
|
||||
@ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4
|
||||
@ stub _vcomp_atomic_mul_r8
|
||||
@ stub _vcomp_atomic_or_i1
|
||||
@ stub _vcomp_atomic_or_i2
|
||||
|
@ -44,7 +44,7 @@
|
|||
@ stub _vcomp_atomic_sub_i2
|
||||
@ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4
|
||||
@ stub _vcomp_atomic_sub_i8
|
||||
@ stub _vcomp_atomic_sub_r4
|
||||
@ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4
|
||||
@ stub _vcomp_atomic_sub_r8
|
||||
@ stub _vcomp_atomic_xor_i1
|
||||
@ stub _vcomp_atomic_xor_i2
|
||||
|
|
Loading…
Reference in New Issue