Mercurial > hg > truffle
comparison src/cpu/sparc/vm/interp_masm_sparc.hpp @ 10458:63e44cdabb91
fixed SPARC interpreter
author | twisti |
---|---|
date | Thu, 20 Jun 2013 10:56:34 -0700 |
parents | aeaca88565e6 |
children | d8041d695d19 |
comparison
equal
deleted
inserted
replaced
10457:fb95519008d6 | 10458:63e44cdabb91 |
---|---|
27 | 27 |
28 #include "asm/macroAssembler.inline.hpp" | 28 #include "asm/macroAssembler.inline.hpp" |
29 #include "interpreter/invocationCounter.hpp" | 29 #include "interpreter/invocationCounter.hpp" |
30 | 30 |
31 // This file specializes the assember with interpreter-specific macros | 31 // This file specializes the assember with interpreter-specific macros |
32 | |
33 typedef ByteSize (*OffsetFunction)(uint); | |
32 | 34 |
33 REGISTER_DECLARATION( Register, Otos_i , O0); // tos for ints, etc | 35 REGISTER_DECLARATION( Register, Otos_i , O0); // tos for ints, etc |
34 REGISTER_DECLARATION( Register, Otos_l , O0); // for longs | 36 REGISTER_DECLARATION( Register, Otos_l , O0); // for longs |
35 REGISTER_DECLARATION( Register, Otos_l1, O0); // for 1st part of longs | 37 REGISTER_DECLARATION( Register, Otos_l1, O0); // for 1st part of longs |
36 REGISTER_DECLARATION( Register, Otos_l2, O1); // for 2nd part of longs | 38 REGISTER_DECLARATION( Register, Otos_l2, O1); // for 2nd part of longs |
298 void test_mdp_data_at(int offset, Register value, Label& not_equal_continue, | 300 void test_mdp_data_at(int offset, Register value, Label& not_equal_continue, |
299 Register scratch); | 301 Register scratch); |
300 | 302 |
301 void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call); | 303 void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call); |
302 void record_klass_in_profile_helper(Register receiver, Register scratch, | 304 void record_klass_in_profile_helper(Register receiver, Register scratch, |
303 int start_row, Label& done, bool is_virtual_call); | 305 Label& done, bool is_virtual_call); |
306 void record_item_in_profile_helper(Register item, | |
307 Register scratch, int start_row, Label& done, int total_rows, | |
308 OffsetFunction item_offset_fn, OffsetFunction item_count_offset_fn, | |
309 int non_profiled_offset); | |
304 | 310 |
305 void update_mdp_by_offset(int offset_of_disp, Register scratch); | 311 void update_mdp_by_offset(int offset_of_disp, Register scratch); |
306 void update_mdp_by_offset(Register reg, int offset_of_disp, | 312 void update_mdp_by_offset(Register reg, int offset_of_disp, |
307 Register scratch); | 313 Register scratch); |
308 void update_mdp_by_constant(int constant); | 314 void update_mdp_by_constant(int constant); |
311 void profile_taken_branch(Register scratch, Register bumped_count); | 317 void profile_taken_branch(Register scratch, Register bumped_count); |
312 void profile_not_taken_branch(Register scratch); | 318 void profile_not_taken_branch(Register scratch); |
313 void profile_call(Register scratch); | 319 void profile_call(Register scratch); |
314 void profile_final_call(Register scratch); | 320 void profile_final_call(Register scratch); |
315 void profile_virtual_call(Register receiver, Register scratch, bool receiver_can_be_null = false); | 321 void profile_virtual_call(Register receiver, Register scratch, bool receiver_can_be_null = false); |
322 void profile_called_method(Register method, Register scratch); | |
316 void profile_ret(TosState state, Register return_bci, Register scratch); | 323 void profile_ret(TosState state, Register return_bci, Register scratch); |
317 void profile_null_seen(Register scratch); | 324 void profile_null_seen(Register scratch); |
318 void profile_typecheck(Register klass, Register scratch); | 325 void profile_typecheck(Register klass, Register scratch); |
319 void profile_typecheck_failed(Register scratch); | 326 void profile_typecheck_failed(Register scratch); |
320 void profile_switch_default(Register scratch); | 327 void profile_switch_default(Register scratch); |