Lines Matching defs:mdp

649 void InterpreterMacroAssembler::get_mdp(Register mdp) {
650 z_lg(mdp, _z_ijava_state_neg(mdx), Z_fp);
653 void InterpreterMacroAssembler::save_mdp(Register mdp) {
654 z_stg(mdp, _z_ijava_state_neg(mdx), Z_fp);
1096 void InterpreterMacroAssembler::test_method_data_pointer(Register mdp, Label& zero_continue) {
1098 load_and_test_long(mdp, Address(Z_fp, _z_ijava_state_neg(mdx)));
1106 Register mdp = Z_ARG4;
1111 load_and_test_long(mdp, method2_(method, method_data));
1118 z_lg(mdp, method2_(method, method_data)); // Must reload, mdp is volatile reg.
1119 add2reg_with_index(mdp, in_bytes(MethodData::data_offset()), Z_RET, mdp);
1122 save_mdp(mdp);
1130 Register mdp = Z_ARG4;
1133 test_method_data_pointer(mdp, verify_continue); // If mdp is zero, continue
1136 // If the mdp is valid, it will point to a DataLayout header which is
1138 load_sized_value(bcp_expected, Address(mdp, DataLayout::bci_offset()), 2, false /*signed*/);
1142 call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::verify_mdp), method, Z_bcp, mdp);
1213 void InterpreterMacroAssembler::profile_taken_branch(Register mdp, Register bumped_count) {
1218 // Otherwise, assign to mdp.
1219 test_method_data_pointer(mdp, profile_continue);
1223 //increment_mdp_data_at(mdp, in_bytes(JumpData::taken_offset()));
1224 Address data(mdp, JumpData::taken_offset());
1232 update_mdp_by_offset(mdp, in_bytes(JumpData::displacement_offset()));
1238 void InterpreterMacroAssembler::profile_not_taken_branch(Register mdp) {
1243 test_method_data_pointer(mdp, profile_continue);
1246 increment_mdp_data_at(mdp, in_bytes(BranchData::not_taken_offset()), Z_R1_scratch);
1250 update_mdp_by_constant(mdp, in_bytes(BranchData::branch_data_size()));
1256 void InterpreterMacroAssembler::profile_call(Register mdp) {
1261 test_method_data_pointer(mdp, profile_continue);
1264 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1267 update_mdp_by_constant(mdp, in_bytes(CounterData::counter_data_size()));
1272 void InterpreterMacroAssembler::profile_final_call(Register mdp) {
1277 test_method_data_pointer(mdp, profile_continue);
1280 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1283 update_mdp_by_constant(mdp, in_bytes(VirtualCallData::virtual_call_data_size()));
1289 Register mdp,
1296 test_method_data_pointer(mdp, profile_continue);
1303 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1309 record_klass_in_profile(receiver, mdp, reg2, true);
1313 update_mdp_by_constant(mdp, in_bytes(VirtualCallData::virtual_call_data_size()));
1330 Register receiver, Register mdp,
1335 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1354 test_mdp_data_at(mdp, recvr_offset, receiver,
1361 increment_mdp_data_at(mdp, count_offset);
1375 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1387 record_klass_in_profile_helper(receiver, mdp, reg2, start_row + 1, done, is_virtual_call);
1400 set_mdp_data_at(mdp, recvr_offset, receiver);
1403 set_mdp_data_at(mdp, count_offset, reg2);
1434 Register mdp, Register reg2,
1439 record_klass_in_profile_helper(receiver, mdp, reg2, 0, done, is_virtual_call);
1444 void InterpreterMacroAssembler::profile_ret(Register return_bci, Register mdp) {
1450 test_method_data_pointer(mdp, profile_continue);
1453 increment_mdp_data_at(mdp, in_bytes(CounterData::count_offset()));
1459 test_mdp_data_at(mdp,
1465 increment_mdp_data_at(mdp, in_bytes(RetData::bci_count_offset(row)));
1468 update_mdp_by_offset(mdp, in_bytes(RetData::bci_displacement_offset(row)));
1479 void InterpreterMacroAssembler::profile_null_seen(Register mdp) {
1484 test_method_data_pointer(mdp, profile_continue);
1486 set_mdp_flag_at(mdp, BitData::null_seen_byte_constant());
1493 update_mdp_by_constant(mdp, mdp_delta);
1499 void InterpreterMacroAssembler::profile_typecheck_failed(Register mdp, Register tmp) {
1504 test_method_data_pointer(mdp, profile_continue);
1507 // Back up the address, since we have already bumped the mdp.
1511 increment_mdp_data_at(mdp, count_offset, tmp, true);
1517 void InterpreterMacroAssembler::profile_typecheck(Register mdp, Register klass, Register reg2) {
1522 test_method_data_pointer(mdp, profile_continue);
1530 record_klass_in_profile(klass, mdp, reg2, false);
1532 update_mdp_by_constant(mdp, mdp_delta);
1538 void InterpreterMacroAssembler::profile_switch_default(Register mdp) {
1543 test_method_data_pointer(mdp, profile_continue);
1546 increment_mdp_data_at(mdp, in_bytes(MultiBranchData::default_count_offset()));
1549 update_mdp_by_offset(mdp, in_bytes(MultiBranchData::default_displacement_offset()));
1557 Register mdp,
1562 assert_different_registers(index, mdp, scratch1, scratch2);
1565 test_method_data_pointer(mdp, profile_continue);
1572 // Add the calculated base to the mdp -> address of the case' data.
1573 Address case_data_addr(mdp, index);
1583 update_mdp_by_offset(mdp,
1645 void InterpreterMacroAssembler::profile_arguments_type(Register mdp, Register callee, Register tmp, bool is_virtual) {
1650 assert_different_registers(mdp, callee, tmp);
1655 test_method_data_pointer(mdp, profile_continue);
1659 z_cliy(in_bytes(DataLayout::tag_offset()) - off_to_start, mdp,
1666 add2reg(mdp, off_to_args);
1671 z_lg(tmp, in_bytes(TypeEntriesAtCall::cell_count_offset())-off_to_args, mdp);
1681 z_sg(tmp, Address(mdp, in_bytes(TypeEntriesAtCall::stack_slot_offset(i))-off_to_args));
1686 Address mdo_arg_addr(mdp, in_bytes(TypeEntriesAtCall::argument_type_offset(i))-off_to_args);
1690 add2reg(mdp, to_add);
1695 z_lg(tmp, in_bytes(TypeEntriesAtCall::cell_count_offset())-off_to_args, mdp);
1708 z_agr(mdp, tmp);
1710 z_stg(mdp, _z_ijava_state_neg(mdx), Z_fp);
1713 update_mdp_by_constant(mdp, in_bytes(TypeEntriesAtCall::return_only_size()));
1723 void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret, Register tmp) {
1724 assert_different_registers(mdp, ret, tmp);
1728 test_method_data_pointer(mdp, profile_continue);
1755 Address mdo_ret_addr(mdp, -in_bytes(ReturnTypeEntry::size()));
1762 void InterpreterMacroAssembler::profile_parameters_type(Register mdp, Register tmp1, Register tmp2) {
1766 test_method_data_pointer(mdp, profile_continue);
1770 Address parm_di_addr(mdp, in_bytes(MethodData::parameters_type_data_di_offset()) - in_bytes(MethodData::data_offset()));
1780 z_agr(mdp, tmp1);
1785 z_lg(entry_offset, Address(mdp, ArrayData::array_len_offset()));
1794 Address arg_off(mdp, entry_offset, ParametersTypeData::stack_slot_offset(0));
1795 Address arg_type(mdp, entry_offset, ParametersTypeData::type_offset(0));