Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
7bf779f3
Commit
7bf779f3
authored
Jul 27, 2015
by
Sebastian Lackner
Committed by
Alexandre Julliard
Jul 28, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vcomp: Implement 32-bit atomic integer functions.
parent
3009244d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
98 additions
and
33 deletions
+98
-33
main.c
dlls/vcomp/main.c
+65
-0
vcomp.spec
dlls/vcomp/vcomp.spec
+11
-11
vcomp100.spec
dlls/vcomp100/vcomp100.spec
+11
-11
vcomp90.spec
dlls/vcomp90/vcomp90.spec
+11
-11
No files found.
dlls/vcomp/main.c
View file @
7bf779f3
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
*/
*/
#include "config.h"
#include "config.h"
#include "wine/port.h"
#include <stdarg.h>
#include <stdarg.h>
#include <assert.h>
#include <assert.h>
...
@@ -221,6 +222,70 @@ static void vcomp_free_thread_data(void)
...
@@ -221,6 +222,70 @@ static void vcomp_free_thread_data(void)
vcomp_set_thread_data
(
NULL
);
vcomp_set_thread_data
(
NULL
);
}
}
void
CDECL
_vcomp_atomic_add_i4
(
int
*
dest
,
int
val
)
{
interlocked_xchg_add
(
dest
,
val
);
}
void
CDECL
_vcomp_atomic_and_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
&
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_div_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
/
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_div_ui4
(
unsigned
int
*
dest
,
unsigned
int
val
)
{
unsigned
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
((
int
*
)
dest
,
old
/
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_mul_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
*
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_or_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
|
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_shl_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
<<
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_shr_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
>>
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_shr_ui4
(
unsigned
int
*
dest
,
unsigned
int
val
)
{
unsigned
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
((
int
*
)
dest
,
old
>>
val
,
old
)
!=
old
);
}
void
CDECL
_vcomp_atomic_sub_i4
(
int
*
dest
,
int
val
)
{
interlocked_xchg_add
(
dest
,
-
val
);
}
void
CDECL
_vcomp_atomic_xor_i4
(
int
*
dest
,
int
val
)
{
int
old
;
do
old
=
*
dest
;
while
(
interlocked_cmpxchg
(
dest
,
old
^
val
,
old
)
!=
old
);
}
int
CDECL
omp_get_dynamic
(
void
)
int
CDECL
omp_get_dynamic
(
void
)
{
{
TRACE
(
"stub
\n
"
);
TRACE
(
"stub
\n
"
);
...
...
dlls/vcomp/vcomp.spec
View file @
7bf779f3
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i2
@ stub _vcomp_atomic_add_i2
@
stub _vcomp_atomic_add_i4
@
cdecl _vcomp_atomic_add_i4(ptr long)
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i2
@ stub _vcomp_atomic_and_i2
@
stub _vcomp_atomic_and_i4
@
cdecl _vcomp_atomic_and_i4(ptr long)
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i2
@ stub _vcomp_atomic_div_i2
@
stub _vcomp_atomic_div_i4
@
cdecl _vcomp_atomic_div_i4(ptr long)
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui2
@ stub _vcomp_atomic_div_ui2
@
stub _vcomp_atomic_div_ui4
@
cdecl _vcomp_atomic_div_ui4(ptr long)
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i2
@ stub _vcomp_atomic_mul_i2
@
stub _vcomp_atomic_mul_i4
@
cdecl _vcomp_atomic_mul_i4(ptr long)
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i2
@ stub _vcomp_atomic_or_i2
@
stub _vcomp_atomic_or_i4
@
cdecl _vcomp_atomic_or_i4(ptr long)
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i2
@ stub _vcomp_atomic_shl_i2
@
stub _vcomp_atomic_shl_i4
@
cdecl _vcomp_atomic_shl_i4(ptr long)
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i2
@ stub _vcomp_atomic_shr_i2
@
stub _vcomp_atomic_shr_i4
@
cdecl _vcomp_atomic_shr_i4(ptr long)
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui2
@ stub _vcomp_atomic_shr_ui2
@
stub _vcomp_atomic_shr_ui4
@
cdecl _vcomp_atomic_shr_ui4(ptr long)
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i2
@ stub _vcomp_atomic_sub_i2
@
stub _vcomp_atomic_sub_i4
@
cdecl _vcomp_atomic_sub_i4(ptr long)
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i2
@ stub _vcomp_atomic_xor_i2
@
stub _vcomp_atomic_xor_i4
@
cdecl _vcomp_atomic_xor_i4(ptr long)
@ stub _vcomp_atomic_xor_i8
@ stub _vcomp_atomic_xor_i8
@ cdecl _vcomp_barrier()
@ cdecl _vcomp_barrier()
@ stub _vcomp_copyprivate_broadcast
@ stub _vcomp_copyprivate_broadcast
...
...
dlls/vcomp100/vcomp100.spec
View file @
7bf779f3
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i2
@ stub _vcomp_atomic_add_i2
@
stub
_vcomp_atomic_add_i4
@
cdecl _vcomp_atomic_add_i4(ptr long) vcomp.
_vcomp_atomic_add_i4
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i2
@ stub _vcomp_atomic_and_i2
@
stub
_vcomp_atomic_and_i4
@
cdecl _vcomp_atomic_and_i4(ptr long) vcomp.
_vcomp_atomic_and_i4
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i2
@ stub _vcomp_atomic_div_i2
@
stub
_vcomp_atomic_div_i4
@
cdecl _vcomp_atomic_div_i4(ptr long) vcomp.
_vcomp_atomic_div_i4
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui2
@ stub _vcomp_atomic_div_ui2
@
stub
_vcomp_atomic_div_ui4
@
cdecl _vcomp_atomic_div_ui4(ptr long) vcomp.
_vcomp_atomic_div_ui4
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i2
@ stub _vcomp_atomic_mul_i2
@
stub
_vcomp_atomic_mul_i4
@
cdecl _vcomp_atomic_mul_i4(ptr long) vcomp.
_vcomp_atomic_mul_i4
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i2
@ stub _vcomp_atomic_or_i2
@
stub
_vcomp_atomic_or_i4
@
cdecl _vcomp_atomic_or_i4(ptr long) vcomp.
_vcomp_atomic_or_i4
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i2
@ stub _vcomp_atomic_shl_i2
@
stub
_vcomp_atomic_shl_i4
@
cdecl _vcomp_atomic_shl_i4(ptr long) vcomp.
_vcomp_atomic_shl_i4
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i2
@ stub _vcomp_atomic_shr_i2
@
stub
_vcomp_atomic_shr_i4
@
cdecl _vcomp_atomic_shr_i4(ptr long) vcomp.
_vcomp_atomic_shr_i4
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui2
@ stub _vcomp_atomic_shr_ui2
@
stub
_vcomp_atomic_shr_ui4
@
cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp.
_vcomp_atomic_shr_ui4
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i2
@ stub _vcomp_atomic_sub_i2
@
stub
_vcomp_atomic_sub_i4
@
cdecl _vcomp_atomic_sub_i4(ptr long) vcomp.
_vcomp_atomic_sub_i4
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i2
@ stub _vcomp_atomic_xor_i2
@
stub
_vcomp_atomic_xor_i4
@
cdecl _vcomp_atomic_xor_i4(ptr long) vcomp.
_vcomp_atomic_xor_i4
@ stub _vcomp_atomic_xor_i8
@ stub _vcomp_atomic_xor_i8
@ cdecl _vcomp_barrier() vcomp._vcomp_barrier
@ cdecl _vcomp_barrier() vcomp._vcomp_barrier
@ stub _vcomp_copyprivate_broadcast
@ stub _vcomp_copyprivate_broadcast
...
...
dlls/vcomp90/vcomp90.spec
View file @
7bf779f3
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i1
@ stub _vcomp_atomic_add_i2
@ stub _vcomp_atomic_add_i2
@
stub
_vcomp_atomic_add_i4
@
cdecl _vcomp_atomic_add_i4(ptr long) vcomp.
_vcomp_atomic_add_i4
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_i8
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r4
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_add_r8
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i1
@ stub _vcomp_atomic_and_i2
@ stub _vcomp_atomic_and_i2
@
stub
_vcomp_atomic_and_i4
@
cdecl _vcomp_atomic_and_i4(ptr long) vcomp.
_vcomp_atomic_and_i4
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_and_i8
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i1
@ stub _vcomp_atomic_div_i2
@ stub _vcomp_atomic_div_i2
@
stub
_vcomp_atomic_div_i4
@
cdecl _vcomp_atomic_div_i4(ptr long) vcomp.
_vcomp_atomic_div_i4
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_i8
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r4
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_r8
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui1
@ stub _vcomp_atomic_div_ui2
@ stub _vcomp_atomic_div_ui2
@
stub
_vcomp_atomic_div_ui4
@
cdecl _vcomp_atomic_div_ui4(ptr long) vcomp.
_vcomp_atomic_div_ui4
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_div_ui8
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i1
@ stub _vcomp_atomic_mul_i2
@ stub _vcomp_atomic_mul_i2
@
stub
_vcomp_atomic_mul_i4
@
cdecl _vcomp_atomic_mul_i4(ptr long) vcomp.
_vcomp_atomic_mul_i4
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_i8
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r4
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_mul_r8
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i1
@ stub _vcomp_atomic_or_i2
@ stub _vcomp_atomic_or_i2
@
stub
_vcomp_atomic_or_i4
@
cdecl _vcomp_atomic_or_i4(ptr long) vcomp.
_vcomp_atomic_or_i4
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_or_i8
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i1
@ stub _vcomp_atomic_shl_i2
@ stub _vcomp_atomic_shl_i2
@
stub
_vcomp_atomic_shl_i4
@
cdecl _vcomp_atomic_shl_i4(ptr long) vcomp.
_vcomp_atomic_shl_i4
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shl_i8
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i1
@ stub _vcomp_atomic_shr_i2
@ stub _vcomp_atomic_shr_i2
@
stub
_vcomp_atomic_shr_i4
@
cdecl _vcomp_atomic_shr_i4(ptr long) vcomp.
_vcomp_atomic_shr_i4
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_i8
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui1
@ stub _vcomp_atomic_shr_ui2
@ stub _vcomp_atomic_shr_ui2
@
stub
_vcomp_atomic_shr_ui4
@
cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp.
_vcomp_atomic_shr_ui4
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_shr_ui8
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i1
@ stub _vcomp_atomic_sub_i2
@ stub _vcomp_atomic_sub_i2
@
stub
_vcomp_atomic_sub_i4
@
cdecl _vcomp_atomic_sub_i4(ptr long) vcomp.
_vcomp_atomic_sub_i4
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_i8
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r4
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_sub_r8
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i1
@ stub _vcomp_atomic_xor_i2
@ stub _vcomp_atomic_xor_i2
@
stub
_vcomp_atomic_xor_i4
@
cdecl _vcomp_atomic_xor_i4(ptr long) vcomp.
_vcomp_atomic_xor_i4
@ stub _vcomp_atomic_xor_i8
@ stub _vcomp_atomic_xor_i8
@ cdecl _vcomp_barrier() vcomp._vcomp_barrier
@ cdecl _vcomp_barrier() vcomp._vcomp_barrier
@ stub _vcomp_copyprivate_broadcast
@ stub _vcomp_copyprivate_broadcast
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment