equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
20 * or visit www.oracle.com if you need additional information or have any |
20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
23 */ |
|
24 |
|
25 #ifndef OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP |
|
26 #define OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP |
|
27 |
|
28 #include "orderAccess_windows_x86.inline.hpp" |
|
29 #include "runtime/atomic.hpp" |
|
30 #include "runtime/os.hpp" |
|
31 #include "vm_version_x86.hpp" |
24 |
32 |
25 // The following alternative implementations are needed because |
33 // The following alternative implementations are needed because |
26 // Windows 95 doesn't support (some of) the corresponding Windows NT |
34 // Windows 95 doesn't support (some of) the corresponding Windows NT |
27 // calls. Furthermore, these versions allow inlining in the caller. |
35 // calls. Furthermore, these versions allow inlining in the caller. |
28 // (More precisely: The documentation for InterlockedExchange says |
36 // (More precisely: The documentation for InterlockedExchange says |
247 return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value); |
255 return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value); |
248 } |
256 } |
249 #endif // AMD64 |
257 #endif // AMD64 |
250 |
258 |
251 #pragma warning(default: 4035) // Enables warnings reporting missing return statement |
259 #pragma warning(default: 4035) // Enables warnings reporting missing return statement |
|
260 |
|
261 #endif // OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP |