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 // only if +VerifyFPU && (state == ftos || state == dtos)
307 void verify_FPU(int stack_depth, TosState state = ftos);
308
309 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
310
311 // support for jvmti/dtrace
312 void notify_method_entry();
313 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
314
315 virtual void _call_Unimplemented(address call_site) {
316 save_bcp();
317 set_last_Java_frame(esp, rfp, (address) pc(), rscratch1);
318 MacroAssembler::_call_Unimplemented(call_site);
319 }
320
321 void load_resolved_indy_entry(Register cache, Register index);
322 void load_field_entry(Register cache, Register index, int bcp_offset = 1);
323 void load_method_entry(Register cache, Register index, int bcp_offset = 1);
324 };
325
326 #endif // CPU_AARCH64_INTERP_MASM_AARCH64_HPP
|
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 // only if +VerifyFPU && (state == ftos || state == dtos)
307 void verify_FPU(int stack_depth, TosState state = ftos);
308
309 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
310
311 // support for runtime upcalls
312 void generate_runtime_upcalls_on_method_entry();
313
314 // support for jvmti/dtrace
315 void notify_method_entry();
316 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
317
318 virtual void _call_Unimplemented(address call_site) {
319 save_bcp();
320 set_last_Java_frame(esp, rfp, (address) pc(), rscratch1);
321 MacroAssembler::_call_Unimplemented(call_site);
322 }
323
324 void load_resolved_indy_entry(Register cache, Register index);
325 void load_field_entry(Register cache, Register index, int bcp_offset = 1);
326 void load_method_entry(Register cache, Register index, int bcp_offset = 1);
327 };
328
329 #endif // CPU_AARCH64_INTERP_MASM_AARCH64_HPP
|