equal
deleted
inserted
replaced
56 // point to is allocated in the AOTCodeHeap which is in the C-Heap as |
56 // point to is allocated in the AOTCodeHeap which is in the C-Heap as |
57 // well (i.e. it's the memory where the shared library was loaded to) |
57 // well (i.e. it's the memory where the shared library was loaded to) |
58 // RuntimeBlob : Non-compiled method code; generated glue code |
58 // RuntimeBlob : Non-compiled method code; generated glue code |
59 // BufferBlob : Used for non-relocatable code such as interpreter, stubroutines, etc. |
59 // BufferBlob : Used for non-relocatable code such as interpreter, stubroutines, etc. |
60 // AdapterBlob : Used to hold C2I/I2C adapters |
60 // AdapterBlob : Used to hold C2I/I2C adapters |
|
61 // VtableBlob : Used for holding vtable chunks |
61 // MethodHandlesAdapterBlob : Used to hold MethodHandles adapters |
62 // MethodHandlesAdapterBlob : Used to hold MethodHandles adapters |
62 // RuntimeStub : Call to VM runtime methods |
63 // RuntimeStub : Call to VM runtime methods |
63 // SingletonBlob : Super-class for all blobs that exist in only one instance |
64 // SingletonBlob : Super-class for all blobs that exist in only one instance |
64 // DeoptimizationBlob : Used for deoptimization |
65 // DeoptimizationBlob : Used for deoptimization |
65 // ExceptionBlob : Used for stack unrolling |
66 // ExceptionBlob : Used for stack unrolling |
130 virtual bool is_deoptimization_stub() const { return false; } |
131 virtual bool is_deoptimization_stub() const { return false; } |
131 virtual bool is_uncommon_trap_stub() const { return false; } |
132 virtual bool is_uncommon_trap_stub() const { return false; } |
132 virtual bool is_exception_stub() const { return false; } |
133 virtual bool is_exception_stub() const { return false; } |
133 virtual bool is_safepoint_stub() const { return false; } |
134 virtual bool is_safepoint_stub() const { return false; } |
134 virtual bool is_adapter_blob() const { return false; } |
135 virtual bool is_adapter_blob() const { return false; } |
|
136 virtual bool is_vtable_blob() const { return false; } |
135 virtual bool is_method_handles_adapter_blob() const { return false; } |
137 virtual bool is_method_handles_adapter_blob() const { return false; } |
136 virtual bool is_aot() const { return false; } |
138 virtual bool is_aot() const { return false; } |
137 virtual bool is_compiled() const { return false; } |
139 virtual bool is_compiled() const { return false; } |
138 |
140 |
139 inline bool is_compiled_by_c1() const { return _type == compiler_c1; }; |
141 inline bool is_compiled_by_c1() const { return _type == compiler_c1; }; |
378 // BufferBlob: used to hold non-relocatable machine code such as the interpreter, stubroutines, etc. |
380 // BufferBlob: used to hold non-relocatable machine code such as the interpreter, stubroutines, etc. |
379 |
381 |
380 class BufferBlob: public RuntimeBlob { |
382 class BufferBlob: public RuntimeBlob { |
381 friend class VMStructs; |
383 friend class VMStructs; |
382 friend class AdapterBlob; |
384 friend class AdapterBlob; |
|
385 friend class VtableBlob; |
383 friend class MethodHandlesAdapterBlob; |
386 friend class MethodHandlesAdapterBlob; |
384 friend class WhiteBox; |
387 friend class WhiteBox; |
385 |
388 |
386 private: |
389 private: |
387 // Creation support |
390 // Creation support |
423 |
426 |
424 // Typing |
427 // Typing |
425 virtual bool is_adapter_blob() const { return true; } |
428 virtual bool is_adapter_blob() const { return true; } |
426 }; |
429 }; |
427 |
430 |
|
431 //--------------------------------------------------------------------------------------------------- |
|
432 class VtableBlob: public BufferBlob { |
|
433 private: |
|
434 VtableBlob(const char*, int); |
|
435 |
|
436 public: |
|
437 // Creation |
|
438 static VtableBlob* create(const char* name, int buffer_size); |
|
439 |
|
440 // Typing |
|
441 virtual bool is_vtable_blob() const { return true; } |
|
442 }; |
428 |
443 |
429 //---------------------------------------------------------------------------------------------------- |
444 //---------------------------------------------------------------------------------------------------- |
430 // MethodHandlesAdapterBlob: used to hold MethodHandles adapters |
445 // MethodHandlesAdapterBlob: used to hold MethodHandles adapters |
431 |
446 |
432 class MethodHandlesAdapterBlob: public BufferBlob { |
447 class MethodHandlesAdapterBlob: public BufferBlob { |