hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp
changeset 10565 dc90c239f4ec
parent 10265 4c869854aebd
child 13391 30245956af37
equal deleted inserted replaced
10564:db5bf5438c0a 10565:dc90c239f4ec
    43 # include "thread_solaris.inline.hpp"
    43 # include "thread_solaris.inline.hpp"
    44 #endif
    44 #endif
    45 #ifdef TARGET_OS_FAMILY_windows
    45 #ifdef TARGET_OS_FAMILY_windows
    46 # include "thread_windows.inline.hpp"
    46 # include "thread_windows.inline.hpp"
    47 #endif
    47 #endif
       
    48 #ifdef TARGET_OS_FAMILY_bsd
       
    49 # include "thread_bsd.inline.hpp"
       
    50 #endif
    48 
    51 
    49 
    52 
    50 // Implementation of InterpreterMacroAssembler
    53 // Implementation of InterpreterMacroAssembler
    51 #ifdef CC_INTERP
    54 #ifdef CC_INTERP
    52 void InterpreterMacroAssembler::get_method(Register reg) {
    55 void InterpreterMacroAssembler::get_method(Register reg) {
  1156 
  1159 
  1157   // Fill in the receiver field and increment the count.
  1160   // Fill in the receiver field and increment the count.
  1158   int recvr_offset = in_bytes(VirtualCallData::receiver_offset(start_row));
  1161   int recvr_offset = in_bytes(VirtualCallData::receiver_offset(start_row));
  1159   set_mdp_data_at(mdp, recvr_offset, receiver);
  1162   set_mdp_data_at(mdp, recvr_offset, receiver);
  1160   int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row));
  1163   int count_offset = in_bytes(VirtualCallData::receiver_count_offset(start_row));
  1161   movptr(reg2, (int32_t)DataLayout::counter_increment);
  1164   movptr(reg2, (intptr_t)DataLayout::counter_increment);
  1162   set_mdp_data_at(mdp, count_offset, reg2);
  1165   set_mdp_data_at(mdp, count_offset, reg2);
  1163   if (start_row > 0) {
  1166   if (start_row > 0) {
  1164     jmp(done);
  1167     jmp(done);
  1165   }
  1168   }
  1166 }
  1169 }
  1299 
  1302 
  1300     // If no method data exists, go to profile_continue.
  1303     // If no method data exists, go to profile_continue.
  1301     test_method_data_pointer(mdp, profile_continue);
  1304     test_method_data_pointer(mdp, profile_continue);
  1302 
  1305 
  1303     // Build the base (index * per_case_size_in_bytes()) + case_array_offset_in_bytes()
  1306     // Build the base (index * per_case_size_in_bytes()) + case_array_offset_in_bytes()
  1304     movptr(reg2, (int32_t)in_bytes(MultiBranchData::per_case_size()));
  1307     movptr(reg2, (intptr_t)in_bytes(MultiBranchData::per_case_size()));
  1305     // index is positive and so should have correct value if this code were
  1308     // index is positive and so should have correct value if this code were
  1306     // used on 64bits
  1309     // used on 64bits
  1307     imulptr(index, reg2);
  1310     imulptr(index, reg2);
  1308     addptr(index, in_bytes(MultiBranchData::case_array_offset()));
  1311     addptr(index, in_bytes(MultiBranchData::case_array_offset()));
  1309 
  1312