Commit Graph

43 Commits

Author SHA1 Message Date
Sebastian Lackner c3fec9b556 vcomp: Implement 8-bit atomic instructions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-19 19:59:30 +09:00
Sebastian Lackner 284058073d vcomp: Implement 16-bit atomic instructions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-19 11:02:22 +09:00
Sebastian Lackner b29c072e31 vcomp: Implement 64-bit atomic instructions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-10 21:49:47 +09:00
Sebastian Lackner 2964c2b34b vcomp: Use RtlIsCriticalSectionLockedByThread to check lock owner.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:47:45 +09:00
Sebastian Lackner 0410cf9cbe vcomp: Implement _vcomp_get_thread_num.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-07 21:28:49 +09:00
Sebastian Lackner 146df7dab1 vcomp: Implement OpenMP regular locking functions.
Native OpenMP also immediately terminates the process (without
exception) when calling omp_set_lock while holding the lock from the
same thread.
2015-08-18 14:30:30 +09:00
Sebastian Lackner f212a137a6 vcomp: Implement OpenMP nested locking functions.
The test marked with todo_wine suggests that native OpenMP might use a
separate counter for the nesting level. However, to implement the owner
checks required for regular locks we need to access the critical section
private members anyway.
2015-08-18 14:29:53 +09:00
Sebastian Lackner a283d14b3d vcomp: Implement omp_init_lock and omp_destroy_lock. 2015-08-18 14:29:39 +09:00
Sebastian Lackner ce18a73304 vcomp: Implement stub for _vcomp_flush and add tests. 2015-08-18 14:29:31 +09:00
André Hentschel 3ad5a07856 vcomp: Add ARM support. 2015-08-17 16:58:47 +09:00
Sebastian Lackner b0e4fd05e5 vcomp: Implement _vcomp_enter_critsect and _vcomp_leave_critsect. 2015-08-07 16:11:46 +09:00
Sebastian Lackner ea188ea054 vcomp: Implement _vcomp_single_begin and _vcomp_single_end. 2015-08-07 16:10:00 +09:00
Sebastian Lackner bf4daa3395 vcomp: Implement _vcomp_master_begin and _vcomp_master_end. 2015-08-07 16:09:41 +09:00
Sebastian Lackner 2c8f5e09ed vcomp: Also initialize dynamic_type in _vcomp_fork. 2015-08-07 16:09:28 +09:00
Sebastian Lackner 69ec890455 vcomp: Implement _vcomp_for_dynamic_init and _vcomp_for_dynamic_next. 2015-08-06 23:36:02 +09:00
Sebastian Lackner 36fe1f8a82 vcomp: Implement atomic double functions. 2015-07-28 16:56:01 +02:00
Sebastian Lackner 2a0890fe55 vcomp: Implement atomic float functions. 2015-07-28 16:55:29 +02:00
Sebastian Lackner 7bf779f377 vcomp: Implement 32-bit atomic integer functions. 2015-07-28 16:54:54 +02:00
Sebastian Lackner c34c9b4f39 vcomp: Implement _vcomp_for_static_init. 2015-07-20 06:34:44 +02:00
Sebastian Lackner 6f34d0fe1f vcomp: Implement _vcomp_for_static_simple_init and _vcomp_for_static_end. 2015-07-20 06:34:27 +02:00
Sebastian Lackner bc10d127b4 vcomp: Implement omp_in_parallel and add tests. 2015-07-20 06:34:03 +02:00
Sebastian Lackner c06167b172 vcomp: Fix handling of _vcomp_fork with ifval == FALSE.
Forks with ifval == FALSE do not count as "parallel", so nested forks are
still allowed. Please note that calling _vcomp_fork(FALSE, ...) or directly
calling the callback is still different in some aspects, the synchronization
functions run in a different context for example.
2015-07-20 06:33:47 +02:00
Sebastian Lackner 889eba36e9 vcomp: Allow calls to _vcomp_sections_init outside of parallel environment. 2015-07-20 06:33:33 +02:00
Sebastian Lackner c019ebc82f vcomp: Implement _vcomp_sections_init and _vcomp_sections_next. 2015-07-17 16:12:35 +09:00
Sebastian Lackner e26a9fb4ad vcomp: Implement _vcomp_barrier. 2015-07-17 16:09:04 +09:00
Sebastian Lackner ee34265f8f vcomp: Add multithreaded implementation for _vcomp_fork. 2015-07-17 15:54:57 +09:00
Dan Kegel ad1077f94b vcomp: Implement stub for _vcomp_fork. 2015-07-17 15:42:19 +09:00
Sebastian Lackner f59551c222 vcomp: Implement _vcomp_set_num_threads and omp_get_thread_num. 2015-07-15 15:10:05 +09:00
Sebastian Lackner 800ca050df vcomp: Implement omp_{get,set}_nested. 2015-07-15 15:09:58 +09:00
Sebastian Lackner 4dea3e071d vcomp: Implement omp_get_max_threads and omp_set_num_threads. 2015-07-15 15:09:53 +09:00
Alexandre Julliard f02cdd877f Remove empty DLL_PROCESS_DETACH case statements. 2013-04-15 16:45:35 +02:00
Dan Kegel c99a19208a vcomp: No-op stubs for _vcomp_single_begin, _vcomp_single_end. 2012-10-16 12:09:03 +02:00
Dan Kegel fd104f83d3 vcomp: No-op stub for _vcomp_barrier. 2012-10-16 12:08:10 +02:00
Dan Kegel d0955b1bd6 vcomp: Better stub for omp_get_thread_num. 2012-10-02 14:08:37 +02:00
Dan Kegel 15b59d75c6 vcomp: Better stubs for omp_get_nested, omp_set_nested. 2012-10-02 14:08:37 +02:00
Dan Kegel d58ade2d42 vcomp: Better stubs for omp_get_dynamic, omp_set_dynamic. 2012-10-02 14:08:37 +02:00
Dan Kegel ed23241733 vcomp: Better stub for omp_get_max_threads. 2012-10-02 14:08:37 +02:00
Dan Kegel 54a10eb1aa vcomp: Better stub for omp_set_num_threads. 2012-10-02 14:08:36 +02:00
Dan Kegel 9ba01e0246 vcomp: Better stub for omp_get_num_threads. 2012-10-02 14:08:36 +02:00
Dan Kegel e45b5f556a vcomp: Better stub for _vcomp_set_num_threads. 2012-09-10 11:47:06 +02:00
Dan Kegel d97d342585 vcomp: Add better stub for omp_get_num_procs. 2012-09-05 21:56:59 +02:00
Dan Kegel 5c988477d4 vcomp: Implement omp_get_wtime. 2012-09-05 21:56:59 +02:00
Austin English dd2159c6e3 vcomp: Add stub dll. 2011-04-11 12:12:22 +02:00