src/share/vm/opto/runtime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/runtime.cpp

Print this page




 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 //-----------------------------------------------------------------------


src/share/vm/opto/runtime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File