172 // bytecode tracing is only used by the TraceBytecodes 173 static intptr_t trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2) PRODUCT_RETURN0; 174 175 // Platform dependent stuff 176 #include CPU_HEADER(interpreterRT) 177 178 // optional normalization of fingerprints to reduce the number of adapters 179 static uint64_t normalize_fast_native_fingerprint(uint64_t fingerprint); 180 181 // Interpreter's frequency counter overflow 182 static nmethod* frequency_counter_overflow(JavaThread* thread, address branch_bcp); 183 184 // Interpreter profiling support 185 static jint bcp_to_di(Method* method, address cur_bcp); 186 static void profile_method(JavaThread* thread); 187 static void update_mdp_for_ret(JavaThread* thread, int bci); 188 #ifdef ASSERT 189 static void verify_mdp(Method* method, address bcp, address mdp); 190 #endif // ASSERT 191 static MethodCounters* build_method_counters(JavaThread* thread, Method* m); 192 }; 193 194 195 class SignatureHandlerLibrary: public AllStatic { 196 public: 197 enum { buffer_size = 1*K }; // the size of the temporary code buffer 198 enum { blob_size = 32*K }; // the size of a handler code blob. 199 200 private: 201 static BufferBlob* _handler_blob; // the current buffer blob containing the generated handlers 202 static address _handler; // next available address within _handler_blob; 203 static GrowableArray<uint64_t>* _fingerprints; // the fingerprint collection 204 static GrowableArray<address>* _handlers; // the corresponding handlers 205 static address _buffer; // the temporary code buffer 206 207 static address set_handler_blob(); 208 static void initialize(); 209 static address set_handler(CodeBuffer* buffer); 210 static void pd_set_handler(address handler); 211 | 172 // bytecode tracing is only used by the TraceBytecodes 173 static intptr_t trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2) PRODUCT_RETURN0; 174 175 // Platform dependent stuff 176 #include CPU_HEADER(interpreterRT) 177 178 // optional normalization of fingerprints to reduce the number of adapters 179 static uint64_t normalize_fast_native_fingerprint(uint64_t fingerprint); 180 181 // Interpreter's frequency counter overflow 182 static nmethod* frequency_counter_overflow(JavaThread* thread, address branch_bcp); 183 184 // Interpreter profiling support 185 static jint bcp_to_di(Method* method, address cur_bcp); 186 static void profile_method(JavaThread* thread); 187 static void update_mdp_for_ret(JavaThread* thread, int bci); 188 #ifdef ASSERT 189 static void verify_mdp(Method* method, address bcp, address mdp); 190 #endif // ASSERT 191 static MethodCounters* build_method_counters(JavaThread* thread, Method* m); 192 193 static void deoptimize_caller_frame_for_vt(JavaThread* thread, Method* callee); 194 }; 195 196 197 class SignatureHandlerLibrary: public AllStatic { 198 public: 199 enum { buffer_size = 1*K }; // the size of the temporary code buffer 200 enum { blob_size = 32*K }; // the size of a handler code blob. 201 202 private: 203 static BufferBlob* _handler_blob; // the current buffer blob containing the generated handlers 204 static address _handler; // next available address within _handler_blob; 205 static GrowableArray<uint64_t>* _fingerprints; // the fingerprint collection 206 static GrowableArray<address>* _handlers; // the corresponding handlers 207 static address _buffer; // the temporary code buffer 208 209 static address set_handler_blob(); 210 static void initialize(); 211 static address set_handler(CodeBuffer* buffer); 212 static void pd_set_handler(address handler); 213 |