comparison src/cpu/x86/vm/interp_masm_x86_32.cpp @ 3960:f08d439fab8c

7089790: integrate bsd-port changes Reviewed-by: kvn, twisti, jrose Contributed-by: Kurt Miller <kurt@intricatesoftware.com>, Greg Lewis <glewis@eyesbeyond.com>, Jung-uk Kim <jkim@freebsd.org>, Christos Zoulas <christos@zoulas.com>, Landon Fuller <landonf@plausible.coop>, The FreeBSD Foundation <board@freebsdfoundation.org>, Michael Franz <mvfranz@gmail.com>, Roger Hoover <rhoover@apple.com>, Alexander Strange <astrange@apple.com>
author never
date Sun, 25 Sep 2011 16:03:29 -0700
parents fdb992d83a87
children 1d7922586cf6
comparison
equal deleted inserted replaced
3959:eda6988c0d81 3960:f08d439fab8c
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