145 // entries that identify a sub-interval of range (range_start,
146 // range_end). Append nullptr if the exit pc is not in the range.
147 static void collect_entries(address range_start, address range_end, GrowableArray<address>& entries);
148 };
149
150 class UnsafeMemoryAccessMark : public StackObj {
151 private:
152 UnsafeMemoryAccess* _ucm_entry;
153 StubCodeGenerator* _cgen;
154 public:
155 UnsafeMemoryAccessMark(StubCodeGenerator* cgen, bool add_entry, bool continue_at_scope_end, address error_exit_pc = nullptr);
156 ~UnsafeMemoryAccessMark();
157 };
158
159 class StubRoutines: AllStatic {
160
161 public:
162 // Dependencies
163 friend class StubGenerator;
164 friend class VMStructs;
165 #if INCLUDE_JVMCI
166 friend class JVMCIVMStructs;
167 #endif
168
169 #include CPU_HEADER(stubRoutines)
170
171 static const char* get_blob_name(BlobId id);
172 static const char* get_stub_name(StubId id);
173
174 // declare blob fields
175
176 #define DECLARE_BLOB_FIELD(blob_name) \
177 static BufferBlob* STUBGEN_BLOB_FIELD_NAME(blob_name);
178
179 private:
180 STUBGEN_BLOBS_DO(DECLARE_BLOB_FIELD);
181
182 #undef DECLARE_BLOB_FIELD
183
184 // declare fields to store entry addresses
|
145 // entries that identify a sub-interval of range (range_start,
146 // range_end). Append nullptr if the exit pc is not in the range.
147 static void collect_entries(address range_start, address range_end, GrowableArray<address>& entries);
148 };
149
150 class UnsafeMemoryAccessMark : public StackObj {
151 private:
152 UnsafeMemoryAccess* _ucm_entry;
153 StubCodeGenerator* _cgen;
154 public:
155 UnsafeMemoryAccessMark(StubCodeGenerator* cgen, bool add_entry, bool continue_at_scope_end, address error_exit_pc = nullptr);
156 ~UnsafeMemoryAccessMark();
157 };
158
159 class StubRoutines: AllStatic {
160
161 public:
162 // Dependencies
163 friend class StubGenerator;
164 friend class VMStructs;
165 friend class AOTCodeAddressTable;
166 #if INCLUDE_JVMCI
167 friend class JVMCIVMStructs;
168 #endif
169
170 #include CPU_HEADER(stubRoutines)
171
172 static const char* get_blob_name(BlobId id);
173 static const char* get_stub_name(StubId id);
174
175 // declare blob fields
176
177 #define DECLARE_BLOB_FIELD(blob_name) \
178 static BufferBlob* STUBGEN_BLOB_FIELD_NAME(blob_name);
179
180 private:
181 STUBGEN_BLOBS_DO(DECLARE_BLOB_FIELD);
182
183 #undef DECLARE_BLOB_FIELD
184
185 // declare fields to store entry addresses
|