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
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/vmSymbols.hpp"
27 #include "memory/resourceArea.hpp"
28 #include "oops/markOop.hpp"
29 #include "oops/oop.inline.hpp"
30 #include "runtime/biasedLocking.hpp"
31 #include "runtime/handles.inline.hpp"
32 #include "runtime/interfaceSupport.hpp"
33 #include "runtime/mutexLocker.hpp"
34 #include "runtime/objectMonitor.hpp"
35 #include "runtime/objectMonitor.inline.hpp"
36 #include "runtime/osThread.hpp"
37 #include "runtime/stubRoutines.hpp"
38 #include "runtime/synchronizer.hpp"
39 #include "utilities/dtrace.hpp"
40 #include "utilities/events.hpp"
41 #include "utilities/preserveException.hpp"
42 #ifdef TARGET_OS_FAMILY_linux
43 # include "os_linux.inline.hpp"
44 # include "thread_linux.inline.hpp"
45 #endif
46 #ifdef TARGET_OS_FAMILY_solaris
47 # include "os_solaris.inline.hpp"
48 # include "thread_solaris.inline.hpp"
49 #endif
50 #ifdef TARGET_OS_FAMILY_windows
51 # include "os_windows.inline.hpp"
52 # include "thread_windows.inline.hpp"
53 #endif
54 #ifdef TARGET_OS_FAMILY_bsd
55 # include "os_bsd.inline.hpp"
56 # include "thread_bsd.inline.hpp"
57 #endif
58
59 #if defined(__GNUC__) && !defined(IA64)
60 // Need to inhibit inlining for older versions of GCC to avoid build-time failures
61 #define ATTR __attribute__((noinline))
62 #else
63 #define ATTR
64 #endif
65
66 // The "core" versions of monitor enter and exit reside in this file.
67 // The interpreter and compilers contain specialized transliterated
68 // variants of the enter-exit fast-path operations. See i486.ad fast_lock(),
69 // for instance. If you make changes here, make sure to modify the
70 // interpreter, and both C1 and C2 fast-path inline locking code emission.
71 //
72 //
73 // -----------------------------------------------------------------------------
74
75 #ifdef DTRACE_ENABLED
76
|
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
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/vmSymbols.hpp"
27 #include "memory/resourceArea.hpp"
28 #include "oops/markOop.hpp"
29 #include "oops/oop.inline.hpp"
30 #include "runtime/biasedLocking.hpp"
31 #include "runtime/handles.inline.hpp"
32 #include "runtime/interfaceSupport.hpp"
33 #include "runtime/mutexLocker.hpp"
34 #include "runtime/objectMonitor.hpp"
35 #include "runtime/objectMonitor.inline.hpp"
36 #include "runtime/osThread.hpp"
37 #include "runtime/stubRoutines.hpp"
38 #include "runtime/synchronizer.hpp"
39 #include "runtime/thread.inline.hpp"
40 #include "utilities/dtrace.hpp"
41 #include "utilities/events.hpp"
42 #include "utilities/preserveException.hpp"
43 #ifdef TARGET_OS_FAMILY_linux
44 # include "os_linux.inline.hpp"
45 #endif
46 #ifdef TARGET_OS_FAMILY_solaris
47 # include "os_solaris.inline.hpp"
48 #endif
49 #ifdef TARGET_OS_FAMILY_windows
50 # include "os_windows.inline.hpp"
51 #endif
52 #ifdef TARGET_OS_FAMILY_bsd
53 # include "os_bsd.inline.hpp"
54 #endif
55
56 #if defined(__GNUC__) && !defined(IA64)
57 // Need to inhibit inlining for older versions of GCC to avoid build-time failures
58 #define ATTR __attribute__((noinline))
59 #else
60 #define ATTR
61 #endif
62
63 // The "core" versions of monitor enter and exit reside in this file.
64 // The interpreter and compilers contain specialized transliterated
65 // variants of the enter-exit fast-path operations. See i486.ad fast_lock(),
66 // for instance. If you make changes here, make sure to modify the
67 // interpreter, and both C1 and C2 fast-path inline locking code emission.
68 //
69 //
70 // -----------------------------------------------------------------------------
71
72 #ifdef DTRACE_ENABLED
73
|