34 # include "os_windows.inline.hpp" |
34 # include "os_windows.inline.hpp" |
35 #endif |
35 #endif |
36 #ifdef TARGET_OS_FAMILY_bsd |
36 #ifdef TARGET_OS_FAMILY_bsd |
37 # include "os_bsd.inline.hpp" |
37 # include "os_bsd.inline.hpp" |
38 #endif |
38 #endif |
39 #ifdef TARGET_OS_ARCH_linux_x86 |
39 |
40 # include "atomic_linux_x86.inline.hpp" |
40 #include "runtime/atomic.inline.hpp" |
41 #endif |
|
42 #ifdef TARGET_OS_ARCH_linux_sparc |
|
43 # include "atomic_linux_sparc.inline.hpp" |
|
44 #endif |
|
45 #ifdef TARGET_OS_ARCH_linux_zero |
|
46 # include "atomic_linux_zero.inline.hpp" |
|
47 #endif |
|
48 #ifdef TARGET_OS_ARCH_solaris_x86 |
|
49 # include "atomic_solaris_x86.inline.hpp" |
|
50 #endif |
|
51 #ifdef TARGET_OS_ARCH_solaris_sparc |
|
52 # include "atomic_solaris_sparc.inline.hpp" |
|
53 #endif |
|
54 #ifdef TARGET_OS_ARCH_windows_x86 |
|
55 # include "atomic_windows_x86.inline.hpp" |
|
56 #endif |
|
57 #ifdef TARGET_OS_ARCH_linux_arm |
|
58 # include "atomic_linux_arm.inline.hpp" |
|
59 #endif |
|
60 #ifdef TARGET_OS_ARCH_linux_ppc |
|
61 # include "atomic_linux_ppc.inline.hpp" |
|
62 #endif |
|
63 #ifdef TARGET_OS_ARCH_bsd_x86 |
|
64 # include "atomic_bsd_x86.inline.hpp" |
|
65 #endif |
|
66 #ifdef TARGET_OS_ARCH_bsd_zero |
|
67 # include "atomic_bsd_zero.inline.hpp" |
|
68 #endif |
|
69 |
41 |
70 jbyte Atomic::cmpxchg(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) { |
42 jbyte Atomic::cmpxchg(jbyte exchange_value, volatile jbyte* dest, jbyte compare_value) { |
71 assert(sizeof(jbyte) == 1, "assumption."); |
43 assert(sizeof(jbyte) == 1, "assumption."); |
72 uintptr_t dest_addr = (uintptr_t)dest; |
44 uintptr_t dest_addr = (uintptr_t)dest; |
73 uintptr_t offset = dest_addr % sizeof(jint); |
45 uintptr_t offset = dest_addr % sizeof(jint); |