289 void profile_ret(Register return_bci, Register mdp);
290 void profile_null_seen(Register mdp);
291 void profile_typecheck(Register mdp, Register klass, Register scratch);
292 void profile_typecheck_failed(Register mdp);
293 void profile_switch_default(Register mdp);
294 void profile_switch_case(Register index_in_scratch, Register mdp,
295 Register scratch2);
296
297 void profile_obj_type(Register obj, const Address& mdo_addr);
298 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
299 void profile_return_type(Register mdp, Register ret, Register tmp);
300 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
301
302 // Debugging
303 // only if +VerifyOops && state == atos
304 #define interp_verify_oop(reg, state) _interp_verify_oop(reg, state, __FILE__, __LINE__);
305 void _interp_verify_oop(Register reg, TosState state, const char* file, int line);
306
307 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
308
309 // support for jvmti/dtrace
310 void notify_method_entry();
311 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
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
|
289 void profile_ret(Register return_bci, Register mdp);
290 void profile_null_seen(Register mdp);
291 void profile_typecheck(Register mdp, Register klass, Register scratch);
292 void profile_typecheck_failed(Register mdp);
293 void profile_switch_default(Register mdp);
294 void profile_switch_case(Register index_in_scratch, Register mdp,
295 Register scratch2);
296
297 void profile_obj_type(Register obj, const Address& mdo_addr);
298 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
299 void profile_return_type(Register mdp, Register ret, Register tmp);
300 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
301
302 // Debugging
303 // only if +VerifyOops && state == atos
304 #define interp_verify_oop(reg, state) _interp_verify_oop(reg, state, __FILE__, __LINE__);
305 void _interp_verify_oop(Register reg, TosState state, const char* file, int line);
306
307 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
308
309 // support for runtime upcalls
310 void generate_runtime_upcalls_on_method_entry();
311
312 // support for jvmti/dtrace
313 void notify_method_entry();
314 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
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
|