263 void update_mdp_for_ret(Register return_bci);
264
265 void profile_taken_branch(Register mdp, Register bumped_count);
266 void profile_not_taken_branch(Register mdp);
267 void profile_call(Register mdp);
268 void profile_final_call(Register mdp);
269 void profile_virtual_call(Register receiver, Register mdp,
270 Register scratch2,
271 bool receiver_can_be_null = false);
272 void profile_called_method(Register method, Register mdp, Register reg2) NOT_JVMCI_RETURN;
273 void profile_ret(Register return_bci, Register mdp);
274 void profile_null_seen(Register mdp);
275 void profile_typecheck(Register mdp, Register klass, Register scratch);
276 void profile_typecheck_failed(Register mdp);
277 void profile_switch_default(Register mdp);
278 void profile_switch_case(Register index_in_scratch, Register mdp,
279 Register scratch2);
280
281 // Debugging
282 // only if +VerifyOops && state == atos
283 void verify_oop(Register reg, TosState state = atos);
284 // only if +VerifyFPU && (state == ftos || state == dtos)
285 void verify_FPU(int stack_depth, TosState state = ftos);
286
287 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
288
289 // support for jvmti/dtrace
290 void notify_method_entry();
291 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
292
293 private:
294
295 Register _locals_register; // register that contains the pointer to the locals
296 Register _bcp_register; // register that contains the bcp
297
298 public:
299 void profile_obj_type(Register obj, const Address& mdo_addr);
300 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
301 void profile_return_type(Register mdp, Register ret, Register tmp);
302 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
303
|
263 void update_mdp_for_ret(Register return_bci);
264
265 void profile_taken_branch(Register mdp, Register bumped_count);
266 void profile_not_taken_branch(Register mdp);
267 void profile_call(Register mdp);
268 void profile_final_call(Register mdp);
269 void profile_virtual_call(Register receiver, Register mdp,
270 Register scratch2,
271 bool receiver_can_be_null = false);
272 void profile_called_method(Register method, Register mdp, Register reg2) NOT_JVMCI_RETURN;
273 void profile_ret(Register return_bci, Register mdp);
274 void profile_null_seen(Register mdp);
275 void profile_typecheck(Register mdp, Register klass, Register scratch);
276 void profile_typecheck_failed(Register mdp);
277 void profile_switch_default(Register mdp);
278 void profile_switch_case(Register index_in_scratch, Register mdp,
279 Register scratch2);
280
281 // Debugging
282 // only if +VerifyOops && state == atos
283 void interp_verify_oop(Register reg, TosState state, const char* file, int line);
284 // only if +VerifyFPU && (state == ftos || state == dtos)
285 void verify_FPU(int stack_depth, TosState state = ftos);
286
287 typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
288
289 // support for jvmti/dtrace
290 void notify_method_entry();
291 void notify_method_exit(TosState state, NotifyMethodExitMode mode);
292
293 private:
294
295 Register _locals_register; // register that contains the pointer to the locals
296 Register _bcp_register; // register that contains the bcp
297
298 public:
299 void profile_obj_type(Register obj, const Address& mdo_addr);
300 void profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual);
301 void profile_return_type(Register mdp, Register ret, Register tmp);
302 void profile_parameters_type(Register mdp, Register tmp1, Register tmp2);
303
|