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