23 */
24
25 #ifndef SHARE_VM_CODE_CODEBLOB_HPP
26 #define SHARE_VM_CODE_CODEBLOB_HPP
27
28 #include "asm/codeBuffer.hpp"
29 #include "compiler/compilerDefinitions.hpp"
30 #include "compiler/oopMap.hpp"
31 #include "runtime/frame.hpp"
32 #include "runtime/handles.hpp"
33 #include "utilities/macros.hpp"
34
35 // CodeBlob Types
36 // Used in the CodeCache to assign CodeBlobs to different CodeHeaps
37 struct CodeBlobType {
38 enum {
39 MethodNonProfiled = 0, // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods)
40 MethodProfiled = 1, // Execution level 2 and 3 (profiled) nmethods
41 NonNMethod = 2, // Non-nmethods like Buffers, Adapters and Runtime Stubs
42 All = 3, // All types (No code cache segmentation)
43 Pregenerated = 4, // Special blobs, managed by CodeCacheExtensions
44 NumTypes = 5 // Number of CodeBlobTypes
45 };
46 };
47
48 // CodeBlob - superclass for all entries in the CodeCache.
49 //
50 // Subtypes are:
51 // CompiledMethod : Compiled Java methods (include method that calls to native code)
52 // nmethod : JIT Compiled Java methods
53 // RuntimeBlob : Non-compiled method code; generated glue code
54 // RuntimeStub : Call to VM runtime methods
55 // DeoptimizationBlob : Used for deoptimization
56 // ExceptionBlob : Used for stack unrolling
57 // SafepointBlob : Used to handle illegal instruction exceptions
58 //
59 //
60 // Layout:
61 // - header
62 // - relocation
63 // - content space
64 // - instruction space
|
23 */
24
25 #ifndef SHARE_VM_CODE_CODEBLOB_HPP
26 #define SHARE_VM_CODE_CODEBLOB_HPP
27
28 #include "asm/codeBuffer.hpp"
29 #include "compiler/compilerDefinitions.hpp"
30 #include "compiler/oopMap.hpp"
31 #include "runtime/frame.hpp"
32 #include "runtime/handles.hpp"
33 #include "utilities/macros.hpp"
34
35 // CodeBlob Types
36 // Used in the CodeCache to assign CodeBlobs to different CodeHeaps
37 struct CodeBlobType {
38 enum {
39 MethodNonProfiled = 0, // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods)
40 MethodProfiled = 1, // Execution level 2 and 3 (profiled) nmethods
41 NonNMethod = 2, // Non-nmethods like Buffers, Adapters and Runtime Stubs
42 All = 3, // All types (No code cache segmentation)
43 NumTypes = 4 // Number of CodeBlobTypes
44 };
45 };
46
47 // CodeBlob - superclass for all entries in the CodeCache.
48 //
49 // Subtypes are:
50 // CompiledMethod : Compiled Java methods (include method that calls to native code)
51 // nmethod : JIT Compiled Java methods
52 // RuntimeBlob : Non-compiled method code; generated glue code
53 // RuntimeStub : Call to VM runtime methods
54 // DeoptimizationBlob : Used for deoptimization
55 // ExceptionBlob : Used for stack unrolling
56 // SafepointBlob : Used to handle illegal instruction exceptions
57 //
58 //
59 // Layout:
60 // - header
61 // - relocation
62 // - content space
63 // - instruction space
|