290 void profile_ret(Register return_bci, Register mdp);
291 void profile_null_seen(Register mdp);
292 void profile_typecheck(Register mdp, Register klass);
293 void profile_typecheck_failed(Register mdp);
294 void profile_switch_default(Register mdp);
295 void profile_switch_case(Register index_in_scratch, Register mdp,
296 Register scratch2);
297
298 void profile_obj_type(Register obj, const Address& mdo_addr);
299 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
300 void profile_return_type(Register mdp, Register ret, Register tmp);
301 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
302
303 // Debugging
304 // only if +VerifyOops && state == atos
305 #define interp_verify_oop(reg, state) _interp_verify_oop(reg, state, __FILE__, __LINE__);
306 void _interp_verify_oop(Register reg, TosState state, const char* file, int line);
307
308 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
309
310 // support for jvmti/dtrace
311 void notify_method_entry();
312 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
313
314 JFR_ONLY(void enter_jfr_critical_section();)
315 JFR_ONLY(void leave_jfr_critical_section();)
316
317 virtual void _call_Unimplemented(address call_site) {
318 save_bcp();
319 set_last_Java_frame(esp, rfp, (address) pc(), rscratch1);
320 MacroAssembler::_call_Unimplemented(call_site);
321 }
322
323 void load_resolved_indy_entry(Register cache, Register index);
324 void load_field_entry(Register cache, Register index, int bcp_offset = 1);
325 void load_method_entry(Register cache, Register index, int bcp_offset = 1);
326
327 void verify_field_offset(Register reg) NOT_DEBUG_RETURN;
328 };
329
|
290 void profile_ret(Register return_bci, Register mdp);
291 void profile_null_seen(Register mdp);
292 void profile_typecheck(Register mdp, Register klass);
293 void profile_typecheck_failed(Register mdp);
294 void profile_switch_default(Register mdp);
295 void profile_switch_case(Register index_in_scratch, Register mdp,
296 Register scratch2);
297
298 void profile_obj_type(Register obj, const Address& mdo_addr);
299 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
300 void profile_return_type(Register mdp, Register ret, Register tmp);
301 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
302
303 // Debugging
304 // only if +VerifyOops && state == atos
305 #define interp_verify_oop(reg, state) _interp_verify_oop(reg, state, __FILE__, __LINE__);
306 void _interp_verify_oop(Register reg, TosState state, const char* file, int line);
307
308 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
309
310 // support for runtime upcalls
311 void generate_runtime_upcalls_on_method_entry();
312
313 // support for jvmti/dtrace
314 void notify_method_entry();
315 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
316
317 JFR_ONLY(void enter_jfr_critical_section();)
318 JFR_ONLY(void leave_jfr_critical_section();)
319
320 virtual void _call_Unimplemented(address call_site) {
321 save_bcp();
322 set_last_Java_frame(esp, rfp, (address) pc(), rscratch1);
323 MacroAssembler::_call_Unimplemented(call_site);
324 }
325
326 void load_resolved_indy_entry(Register cache, Register index);
327 void load_field_entry(Register cache, Register index, int bcp_offset = 1);
328 void load_method_entry(Register cache, Register index, int bcp_offset = 1);
329
330 void verify_field_offset(Register reg) NOT_DEBUG_RETURN;
331 };
332
|