943 // vc->set_receiver_count(row, vc->receiver_count(row) + DataLayout::counter_increment);
944 int count_off = ReceiverTypeData::receiver_count_cell_index(row);
945 *(mdp + count_off) += DataLayout::counter_increment;
946 return;
947 } else if (row_recv == 0) {
948 // else if (vc->receiver(row) == NULL)
949 empty_row = (int) row;
950 }
951 }
952
953 if (empty_row != -1) {
954 int receiver_off = ReceiverTypeData::receiver_cell_index(empty_row);
955 // vc->set_receiver(empty_row, receiver_klass);
956 *(mdp + receiver_off) = (intptr_t) receiver_klass;
957 // vc->set_receiver_count(empty_row, DataLayout::counter_increment);
958 int count_off = ReceiverTypeData::receiver_count_cell_index(empty_row);
959 *(mdp + count_off) = DataLayout::counter_increment;
960 } else {
961 // Receiver did not match any saved receiver and there is no empty row for it.
962 // Increment total counter to indicate polymorphic case.
963 intptr_t* count_p = (intptr_t*)(((byte*)(data)) + in_bytes(CounterData::count_offset()));
964 *count_p += DataLayout::counter_increment;
965 }
966 JRT_END
967
968 //-------------------------------------------------------------------------------------
969 // register policy
970
971 bool OptoRuntime::is_callee_saved_register(MachRegisterNumbers reg) {
972 assert(reg >= 0 && reg < _last_Mach_Reg, "must be a machine register");
973 switch (register_save_policy[reg]) {
974 case 'C': return false; //SOC
975 case 'E': return true ; //SOE
976 case 'N': return false; //NS
977 case 'A': return false; //AS
978 }
979 ShouldNotReachHere();
980 return false;
981 }
982
983 //-----------------------------------------------------------------------
|
943 // vc->set_receiver_count(row, vc->receiver_count(row) + DataLayout::counter_increment);
944 int count_off = ReceiverTypeData::receiver_count_cell_index(row);
945 *(mdp + count_off) += DataLayout::counter_increment;
946 return;
947 } else if (row_recv == 0) {
948 // else if (vc->receiver(row) == NULL)
949 empty_row = (int) row;
950 }
951 }
952
953 if (empty_row != -1) {
954 int receiver_off = ReceiverTypeData::receiver_cell_index(empty_row);
955 // vc->set_receiver(empty_row, receiver_klass);
956 *(mdp + receiver_off) = (intptr_t) receiver_klass;
957 // vc->set_receiver_count(empty_row, DataLayout::counter_increment);
958 int count_off = ReceiverTypeData::receiver_count_cell_index(empty_row);
959 *(mdp + count_off) = DataLayout::counter_increment;
960 } else {
961 // Receiver did not match any saved receiver and there is no empty row for it.
962 // Increment total counter to indicate polymorphic case.
963 intptr_t* count_p = (intptr_t*)(((uint8_t*)(data)) + in_bytes(CounterData::count_offset()));
964 *count_p += DataLayout::counter_increment;
965 }
966 JRT_END
967
968 //-------------------------------------------------------------------------------------
969 // register policy
970
971 bool OptoRuntime::is_callee_saved_register(MachRegisterNumbers reg) {
972 assert(reg >= 0 && reg < _last_Mach_Reg, "must be a machine register");
973 switch (register_save_policy[reg]) {
974 case 'C': return false; //SOC
975 case 'E': return true ; //SOE
976 case 'N': return false; //NS
977 case 'A': return false; //AS
978 }
979 ShouldNotReachHere();
980 return false;
981 }
982
983 //-----------------------------------------------------------------------
|