77 #include "oops/objArrayKlass.hpp"
78 #include "oops/objArrayOop.hpp"
79 #include "oops/oop.inline.hpp"
80 #include "oops/oopHandle.hpp"
81 #include "oops/symbol.hpp"
82 #include "oops/typeArrayKlass.hpp"
83 #include "oops/typeArrayOop.hpp"
84 #include "prims/jvmtiAgentThread.hpp"
85 #include "runtime/arguments.hpp"
86 #include "runtime/deoptimization.hpp"
87 #include "runtime/flags/jvmFlag.hpp"
88 #include "runtime/globals.hpp"
89 #include "runtime/java.hpp"
90 #include "runtime/javaCalls.hpp"
91 #include "runtime/os.hpp"
92 #include "runtime/perfMemory.hpp"
93 #include "runtime/serviceThread.hpp"
94 #include "runtime/sharedRuntime.hpp"
95 #include "runtime/stubRoutines.hpp"
96 #include "runtime/thread.inline.hpp"
97 #include "runtime/vframeArray.hpp"
98 #include "runtime/vmStructs.hpp"
99 #include "utilities/globalDefinitions.hpp"
100 #include "utilities/hashtable.hpp"
101 #include "utilities/macros.hpp"
102
103 #include CPU_HEADER(vmStructs)
104 #include OS_HEADER(vmStructs)
105 #include OS_CPU_HEADER(vmStructs)
106
107 #if INCLUDE_JVMCI
108 # include "jvmci/vmStructs_jvmci.hpp"
109 #endif
110
111
112 #ifdef COMPILER2
113 #include "opto/addnode.hpp"
114 #include "opto/block.hpp"
115 #include "opto/callnode.hpp"
116 #include "opto/castnode.hpp"
712 nonstatic_field(Deoptimization::UnrollBlock, _register_block, intptr_t*) \
713 nonstatic_field(Deoptimization::UnrollBlock, _return_type, BasicType) \
714 nonstatic_field(Deoptimization::UnrollBlock, _initial_info, intptr_t) \
715 nonstatic_field(Deoptimization::UnrollBlock, _caller_actual_parameters, int) \
716 \
717 /********************************/ \
718 /* JavaCalls (NOTE: incomplete) */ \
719 /********************************/ \
720 \
721 nonstatic_field(JavaCallWrapper, _anchor, JavaFrameAnchor) \
722 /********************************/ \
723 /* JavaFrameAnchor (NOTE: incomplete) */ \
724 /********************************/ \
725 volatile_nonstatic_field(JavaFrameAnchor, _last_Java_sp, intptr_t*) \
726 volatile_nonstatic_field(JavaFrameAnchor, _last_Java_pc, address) \
727 \
728 /******************************/ \
729 /* Threads (NOTE: incomplete) */ \
730 /******************************/ \
731 \
732 static_field(Threads, _thread_list, JavaThread*) \
733 static_field(Threads, _number_of_threads, int) \
734 static_field(Threads, _number_of_non_daemon_threads, int) \
735 static_field(Threads, _return_code, int) \
736 \
737 nonstatic_field(ThreadShadow, _pending_exception, oop) \
738 nonstatic_field(ThreadShadow, _exception_file, const char*) \
739 nonstatic_field(ThreadShadow, _exception_line, int) \
740 volatile_nonstatic_field(Thread, _suspend_flags, uint32_t) \
741 nonstatic_field(Thread, _active_handles, JNIHandleBlock*) \
742 nonstatic_field(Thread, _tlab, ThreadLocalAllocBuffer) \
743 nonstatic_field(Thread, _allocated_bytes, jlong) \
744 nonstatic_field(Thread, _current_pending_monitor, ObjectMonitor*) \
745 nonstatic_field(Thread, _current_pending_monitor_is_from_java, bool) \
746 nonstatic_field(Thread, _current_waiting_monitor, ObjectMonitor*) \
747 nonstatic_field(NamedThread, _name, char*) \
748 nonstatic_field(NamedThread, _processed_thread, JavaThread*) \
749 nonstatic_field(JavaThread, _next, JavaThread*) \
750 nonstatic_field(JavaThread, _threadObj, oop) \
751 nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \
752 nonstatic_field(JavaThread, _vm_result, oop) \
753 nonstatic_field(JavaThread, _vm_result_2, Metadata*) \
754 nonstatic_field(JavaThread, _pending_async_exception, oop) \
755 volatile_nonstatic_field(JavaThread, _exception_oop, oop) \
756 volatile_nonstatic_field(JavaThread, _exception_pc, address) \
757 volatile_nonstatic_field(JavaThread, _is_method_handle_return, int) \
758 nonstatic_field(JavaThread, _special_runtime_exit_condition, JavaThread::AsyncRequests) \
759 nonstatic_field(JavaThread, _saved_exception_pc, address) \
760 volatile_nonstatic_field(JavaThread, _thread_state, JavaThreadState) \
761 nonstatic_field(JavaThread, _osthread, OSThread*) \
762 nonstatic_field(JavaThread, _stack_base, address) \
763 nonstatic_field(JavaThread, _stack_size, size_t) \
764 nonstatic_field(JavaThread, _vframe_array_head, vframeArray*) \
765 nonstatic_field(JavaThread, _vframe_array_last, vframeArray*) \
766 volatile_nonstatic_field(JavaThread, _terminated, JavaThread::TerminatedTypes) \
767 nonstatic_field(Thread, _resource_area, ResourceArea*) \
768 nonstatic_field(CompilerThread, _env, ciEnv*) \
769 \
1343 declare_type(ResourceArea, Arena) \
1344 \
1345 /***********************************************************/ \
1346 /* Thread hierarchy (needed for run-time type information) */ \
1347 /***********************************************************/ \
1348 \
1349 declare_toplevel_type(Threads) \
1350 declare_toplevel_type(ThreadShadow) \
1351 declare_type(Thread, ThreadShadow) \
1352 declare_type(NonJavaThread, Thread) \
1353 declare_type(NamedThread, NonJavaThread) \
1354 declare_type(WatcherThread, NonJavaThread) \
1355 declare_type(JavaThread, Thread) \
1356 declare_type(JvmtiAgentThread, JavaThread) \
1357 declare_type(ServiceThread, JavaThread) \
1358 declare_type(CompilerThread, JavaThread) \
1359 declare_type(CodeCacheSweeperThread, JavaThread) \
1360 declare_toplevel_type(OSThread) \
1361 declare_toplevel_type(JavaFrameAnchor) \
1362 \
1363 /***************/ \
1364 /* Interpreter */ \
1365 /***************/ \
1366 \
1367 declare_toplevel_type(AbstractInterpreter) \
1368 \
1369 /*********/ \
1370 /* Stubs */ \
1371 /*********/ \
1372 \
1373 declare_toplevel_type(StubQueue) \
1374 declare_toplevel_type(StubRoutines) \
1375 declare_toplevel_type(Stub) \
1376 declare_type(InterpreterCodelet, Stub) \
1377 \
1378 /*************/ \
1379 /* JavaCalls */ \
1380 /*************/ \
1381 \
1382 declare_toplevel_type(JavaCallWrapper) \
1929 declare_type(Array<Klass*>, MetaspaceObj) \
1930 declare_type(Array<Method*>, MetaspaceObj) \
1931 \
1932 declare_toplevel_type(BitMap) \
1933 declare_type(BitMapView, BitMap) \
1934 \
1935 declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\
1936 declare_toplevel_type(address) /* FIXME: should this be an integer type? */\
1937 declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\
1938 declare_toplevel_type(BreakpointInfo) \
1939 declare_toplevel_type(BreakpointInfo*) \
1940 declare_toplevel_type(CodeBlob*) \
1941 declare_toplevel_type(RuntimeBlob*) \
1942 declare_toplevel_type(CompressedWriteStream*) \
1943 declare_toplevel_type(ConstantPoolCacheEntry) \
1944 declare_toplevel_type(elapsedTimer) \
1945 declare_toplevel_type(frame) \
1946 declare_toplevel_type(intptr_t*) \
1947 declare_unsigned_integer_type(InvocationCounter) /* FIXME: wrong type (not integer) */ \
1948 declare_toplevel_type(JavaThread*) \
1949 declare_toplevel_type(java_lang_Class) \
1950 declare_integer_type(JavaThread::AsyncRequests) \
1951 declare_integer_type(JavaThread::TerminatedTypes) \
1952 declare_toplevel_type(jbyte*) \
1953 declare_toplevel_type(jbyte**) \
1954 declare_toplevel_type(jint*) \
1955 declare_toplevel_type(jniIdMapBase*) \
1956 declare_unsigned_integer_type(juint) \
1957 declare_unsigned_integer_type(julong) \
1958 declare_toplevel_type(JNIHandleBlock*) \
1959 declare_toplevel_type(JNIid) \
1960 declare_toplevel_type(JNIid*) \
1961 declare_toplevel_type(jmethodID*) \
1962 declare_toplevel_type(Mutex*) \
1963 declare_toplevel_type(nmethod*) \
1964 COMPILER2_PRESENT(declare_unsigned_integer_type(node_idx_t)) \
1965 declare_toplevel_type(ObjectMonitor*) \
1966 declare_toplevel_type(PaddedObjectMonitor*) \
1967 declare_toplevel_type(oop*) \
1968 declare_toplevel_type(OopMap**) \
|
77 #include "oops/objArrayKlass.hpp"
78 #include "oops/objArrayOop.hpp"
79 #include "oops/oop.inline.hpp"
80 #include "oops/oopHandle.hpp"
81 #include "oops/symbol.hpp"
82 #include "oops/typeArrayKlass.hpp"
83 #include "oops/typeArrayOop.hpp"
84 #include "prims/jvmtiAgentThread.hpp"
85 #include "runtime/arguments.hpp"
86 #include "runtime/deoptimization.hpp"
87 #include "runtime/flags/jvmFlag.hpp"
88 #include "runtime/globals.hpp"
89 #include "runtime/java.hpp"
90 #include "runtime/javaCalls.hpp"
91 #include "runtime/os.hpp"
92 #include "runtime/perfMemory.hpp"
93 #include "runtime/serviceThread.hpp"
94 #include "runtime/sharedRuntime.hpp"
95 #include "runtime/stubRoutines.hpp"
96 #include "runtime/thread.inline.hpp"
97 #include "runtime/threadSMR.hpp"
98 #include "runtime/vframeArray.hpp"
99 #include "runtime/vmStructs.hpp"
100 #include "utilities/globalDefinitions.hpp"
101 #include "utilities/hashtable.hpp"
102 #include "utilities/macros.hpp"
103
104 #include CPU_HEADER(vmStructs)
105 #include OS_HEADER(vmStructs)
106 #include OS_CPU_HEADER(vmStructs)
107
108 #if INCLUDE_JVMCI
109 # include "jvmci/vmStructs_jvmci.hpp"
110 #endif
111
112
113 #ifdef COMPILER2
114 #include "opto/addnode.hpp"
115 #include "opto/block.hpp"
116 #include "opto/callnode.hpp"
117 #include "opto/castnode.hpp"
713 nonstatic_field(Deoptimization::UnrollBlock, _register_block, intptr_t*) \
714 nonstatic_field(Deoptimization::UnrollBlock, _return_type, BasicType) \
715 nonstatic_field(Deoptimization::UnrollBlock, _initial_info, intptr_t) \
716 nonstatic_field(Deoptimization::UnrollBlock, _caller_actual_parameters, int) \
717 \
718 /********************************/ \
719 /* JavaCalls (NOTE: incomplete) */ \
720 /********************************/ \
721 \
722 nonstatic_field(JavaCallWrapper, _anchor, JavaFrameAnchor) \
723 /********************************/ \
724 /* JavaFrameAnchor (NOTE: incomplete) */ \
725 /********************************/ \
726 volatile_nonstatic_field(JavaFrameAnchor, _last_Java_sp, intptr_t*) \
727 volatile_nonstatic_field(JavaFrameAnchor, _last_Java_pc, address) \
728 \
729 /******************************/ \
730 /* Threads (NOTE: incomplete) */ \
731 /******************************/ \
732 \
733 static_field(Threads, _number_of_threads, int) \
734 static_field(Threads, _number_of_non_daemon_threads, int) \
735 static_field(Threads, _return_code, int) \
736 \
737 static_ptr_volatile_field(ThreadsSMRSupport, _java_thread_list, ThreadsList*) \
738 nonstatic_field(ThreadsList, _length, const uint) \
739 nonstatic_field(ThreadsList, _threads, JavaThread *const *const) \
740 \
741 nonstatic_field(ThreadShadow, _pending_exception, oop) \
742 nonstatic_field(ThreadShadow, _exception_file, const char*) \
743 nonstatic_field(ThreadShadow, _exception_line, int) \
744 volatile_nonstatic_field(Thread, _suspend_flags, uint32_t) \
745 nonstatic_field(Thread, _active_handles, JNIHandleBlock*) \
746 nonstatic_field(Thread, _tlab, ThreadLocalAllocBuffer) \
747 nonstatic_field(Thread, _allocated_bytes, jlong) \
748 nonstatic_field(Thread, _current_pending_monitor, ObjectMonitor*) \
749 nonstatic_field(Thread, _current_pending_monitor_is_from_java, bool) \
750 nonstatic_field(Thread, _current_waiting_monitor, ObjectMonitor*) \
751 nonstatic_field(NamedThread, _name, char*) \
752 nonstatic_field(NamedThread, _processed_thread, JavaThread*) \
753 nonstatic_field(JavaThread, _threadObj, oop) \
754 nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \
755 nonstatic_field(JavaThread, _vm_result, oop) \
756 nonstatic_field(JavaThread, _vm_result_2, Metadata*) \
757 nonstatic_field(JavaThread, _pending_async_exception, oop) \
758 volatile_nonstatic_field(JavaThread, _exception_oop, oop) \
759 volatile_nonstatic_field(JavaThread, _exception_pc, address) \
760 volatile_nonstatic_field(JavaThread, _is_method_handle_return, int) \
761 nonstatic_field(JavaThread, _special_runtime_exit_condition, JavaThread::AsyncRequests) \
762 nonstatic_field(JavaThread, _saved_exception_pc, address) \
763 volatile_nonstatic_field(JavaThread, _thread_state, JavaThreadState) \
764 nonstatic_field(JavaThread, _osthread, OSThread*) \
765 nonstatic_field(JavaThread, _stack_base, address) \
766 nonstatic_field(JavaThread, _stack_size, size_t) \
767 nonstatic_field(JavaThread, _vframe_array_head, vframeArray*) \
768 nonstatic_field(JavaThread, _vframe_array_last, vframeArray*) \
769 volatile_nonstatic_field(JavaThread, _terminated, JavaThread::TerminatedTypes) \
770 nonstatic_field(Thread, _resource_area, ResourceArea*) \
771 nonstatic_field(CompilerThread, _env, ciEnv*) \
772 \
1346 declare_type(ResourceArea, Arena) \
1347 \
1348 /***********************************************************/ \
1349 /* Thread hierarchy (needed for run-time type information) */ \
1350 /***********************************************************/ \
1351 \
1352 declare_toplevel_type(Threads) \
1353 declare_toplevel_type(ThreadShadow) \
1354 declare_type(Thread, ThreadShadow) \
1355 declare_type(NonJavaThread, Thread) \
1356 declare_type(NamedThread, NonJavaThread) \
1357 declare_type(WatcherThread, NonJavaThread) \
1358 declare_type(JavaThread, Thread) \
1359 declare_type(JvmtiAgentThread, JavaThread) \
1360 declare_type(ServiceThread, JavaThread) \
1361 declare_type(CompilerThread, JavaThread) \
1362 declare_type(CodeCacheSweeperThread, JavaThread) \
1363 declare_toplevel_type(OSThread) \
1364 declare_toplevel_type(JavaFrameAnchor) \
1365 \
1366 declare_toplevel_type(ThreadsSMRSupport) \
1367 declare_toplevel_type(ThreadsList) \
1368 \
1369 /***************/ \
1370 /* Interpreter */ \
1371 /***************/ \
1372 \
1373 declare_toplevel_type(AbstractInterpreter) \
1374 \
1375 /*********/ \
1376 /* Stubs */ \
1377 /*********/ \
1378 \
1379 declare_toplevel_type(StubQueue) \
1380 declare_toplevel_type(StubRoutines) \
1381 declare_toplevel_type(Stub) \
1382 declare_type(InterpreterCodelet, Stub) \
1383 \
1384 /*************/ \
1385 /* JavaCalls */ \
1386 /*************/ \
1387 \
1388 declare_toplevel_type(JavaCallWrapper) \
1935 declare_type(Array<Klass*>, MetaspaceObj) \
1936 declare_type(Array<Method*>, MetaspaceObj) \
1937 \
1938 declare_toplevel_type(BitMap) \
1939 declare_type(BitMapView, BitMap) \
1940 \
1941 declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\
1942 declare_toplevel_type(address) /* FIXME: should this be an integer type? */\
1943 declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\
1944 declare_toplevel_type(BreakpointInfo) \
1945 declare_toplevel_type(BreakpointInfo*) \
1946 declare_toplevel_type(CodeBlob*) \
1947 declare_toplevel_type(RuntimeBlob*) \
1948 declare_toplevel_type(CompressedWriteStream*) \
1949 declare_toplevel_type(ConstantPoolCacheEntry) \
1950 declare_toplevel_type(elapsedTimer) \
1951 declare_toplevel_type(frame) \
1952 declare_toplevel_type(intptr_t*) \
1953 declare_unsigned_integer_type(InvocationCounter) /* FIXME: wrong type (not integer) */ \
1954 declare_toplevel_type(JavaThread*) \
1955 declare_toplevel_type(JavaThread *const *const) \
1956 declare_toplevel_type(java_lang_Class) \
1957 declare_integer_type(JavaThread::AsyncRequests) \
1958 declare_integer_type(JavaThread::TerminatedTypes) \
1959 declare_toplevel_type(jbyte*) \
1960 declare_toplevel_type(jbyte**) \
1961 declare_toplevel_type(jint*) \
1962 declare_toplevel_type(jniIdMapBase*) \
1963 declare_unsigned_integer_type(juint) \
1964 declare_unsigned_integer_type(julong) \
1965 declare_toplevel_type(JNIHandleBlock*) \
1966 declare_toplevel_type(JNIid) \
1967 declare_toplevel_type(JNIid*) \
1968 declare_toplevel_type(jmethodID*) \
1969 declare_toplevel_type(Mutex*) \
1970 declare_toplevel_type(nmethod*) \
1971 COMPILER2_PRESENT(declare_unsigned_integer_type(node_idx_t)) \
1972 declare_toplevel_type(ObjectMonitor*) \
1973 declare_toplevel_type(PaddedObjectMonitor*) \
1974 declare_toplevel_type(oop*) \
1975 declare_toplevel_type(OopMap**) \
|