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