27 #include "logging/log.hpp"
28 #include "memory/metaspaceShared.hpp"
29 #include "memory/padded.hpp"
30 #include "memory/resourceArea.hpp"
31 #include "oops/markOop.hpp"
32 #include "oops/oop.inline.hpp"
33 #include "runtime/atomic.hpp"
34 #include "runtime/biasedLocking.hpp"
35 #include "runtime/handles.inline.hpp"
36 #include "runtime/interfaceSupport.hpp"
37 #include "runtime/mutexLocker.hpp"
38 #include "runtime/objectMonitor.hpp"
39 #include "runtime/objectMonitor.inline.hpp"
40 #include "runtime/osThread.hpp"
41 #include "runtime/stubRoutines.hpp"
42 #include "runtime/synchronizer.hpp"
43 #include "runtime/thread.inline.hpp"
44 #include "runtime/vframe.hpp"
45 #include "trace/traceMacros.hpp"
46 #include "trace/tracing.hpp"
47 #include "utilities/dtrace.hpp"
48 #include "utilities/events.hpp"
49 #include "utilities/preserveException.hpp"
50
51 // The "core" versions of monitor enter and exit reside in this file.
52 // The interpreter and compilers contain specialized transliterated
53 // variants of the enter-exit fast-path operations. See i486.ad fast_lock(),
54 // for instance. If you make changes here, make sure to modify the
55 // interpreter, and both C1 and C2 fast-path inline locking code emission.
56 //
57 // -----------------------------------------------------------------------------
58
59 #ifdef DTRACE_ENABLED
60
61 // Only bother with this argument setup if dtrace is available
62 // TODO-FIXME: probes should not fire when caller is _blocked. assert() accordingly.
63
64 #define DTRACE_MONITOR_PROBE_COMMON(obj, thread) \
65 char* bytes = NULL; \
66 int len = 0; \
|
27 #include "logging/log.hpp"
28 #include "memory/metaspaceShared.hpp"
29 #include "memory/padded.hpp"
30 #include "memory/resourceArea.hpp"
31 #include "oops/markOop.hpp"
32 #include "oops/oop.inline.hpp"
33 #include "runtime/atomic.hpp"
34 #include "runtime/biasedLocking.hpp"
35 #include "runtime/handles.inline.hpp"
36 #include "runtime/interfaceSupport.hpp"
37 #include "runtime/mutexLocker.hpp"
38 #include "runtime/objectMonitor.hpp"
39 #include "runtime/objectMonitor.inline.hpp"
40 #include "runtime/osThread.hpp"
41 #include "runtime/stubRoutines.hpp"
42 #include "runtime/synchronizer.hpp"
43 #include "runtime/thread.inline.hpp"
44 #include "runtime/vframe.hpp"
45 #include "trace/traceMacros.hpp"
46 #include "trace/tracing.hpp"
47 #include "utilities/align.hpp"
48 #include "utilities/dtrace.hpp"
49 #include "utilities/events.hpp"
50 #include "utilities/preserveException.hpp"
51
52 // The "core" versions of monitor enter and exit reside in this file.
53 // The interpreter and compilers contain specialized transliterated
54 // variants of the enter-exit fast-path operations. See i486.ad fast_lock(),
55 // for instance. If you make changes here, make sure to modify the
56 // interpreter, and both C1 and C2 fast-path inline locking code emission.
57 //
58 // -----------------------------------------------------------------------------
59
60 #ifdef DTRACE_ENABLED
61
62 // Only bother with this argument setup if dtrace is available
63 // TODO-FIXME: probes should not fire when caller is _blocked. assert() accordingly.
64
65 #define DTRACE_MONITOR_PROBE_COMMON(obj, thread) \
66 char* bytes = NULL; \
67 int len = 0; \
|