265 #endif /* CC_INTERP */ |
265 #endif /* CC_INTERP */ |
266 void get_method_counters(Register method, Register Rcounters, Label& skip); |
266 void get_method_counters(Register method, Register Rcounters, Label& skip); |
267 void increment_invocation_counter( Register Rcounters, Register Rtmp, Register Rtmp2 ); |
267 void increment_invocation_counter( Register Rcounters, Register Rtmp, Register Rtmp2 ); |
268 void increment_backedge_counter( Register Rcounters, Register Rtmp, Register Rtmp2 ); |
268 void increment_backedge_counter( Register Rcounters, Register Rtmp, Register Rtmp2 ); |
269 #ifndef CC_INTERP |
269 #ifndef CC_INTERP |
270 void test_backedge_count_for_osr( Register backedge_count, Register branch_bcp, Register Rtmp ); |
270 void test_backedge_count_for_osr(Register backedge_count, Register method_counters, Register branch_bcp, Register Rtmp ); |
271 |
271 |
272 #endif /* CC_INTERP */ |
272 #endif /* CC_INTERP */ |
273 // Object locking |
273 // Object locking |
274 void lock_object (Register lock_reg, Register obj_reg); |
274 void lock_object (Register lock_reg, Register obj_reg); |
275 void unlock_object(Register lock_reg); |
275 void unlock_object(Register lock_reg); |
278 // Interpreter profiling operations |
278 // Interpreter profiling operations |
279 void set_method_data_pointer(); |
279 void set_method_data_pointer(); |
280 void set_method_data_pointer_for_bcp(); |
280 void set_method_data_pointer_for_bcp(); |
281 void test_method_data_pointer(Label& zero_continue); |
281 void test_method_data_pointer(Label& zero_continue); |
282 void verify_method_data_pointer(); |
282 void verify_method_data_pointer(); |
283 void test_invocation_counter_for_mdp(Register invocation_count, Register Rtmp, Label &profile_continue); |
283 void test_invocation_counter_for_mdp(Register invocation_count, Register method_counters, Register Rtmp, Label &profile_continue); |
284 |
284 |
285 void set_mdp_data_at(int constant, Register value); |
285 void set_mdp_data_at(int constant, Register value); |
286 void increment_mdp_data_at(Address counter, Register bumped_count, |
286 void increment_mdp_data_at(Address counter, Register bumped_count, |
287 bool decrement = false); |
287 bool decrement = false); |
288 void increment_mdp_data_at(int constant, Register bumped_count, |
288 void increment_mdp_data_at(int constant, Register bumped_count, |
289 bool decrement = false); |
289 bool decrement = false); |
290 void increment_mdp_data_at(Register reg, int constant, |
290 void increment_mdp_data_at(Register reg, int constant, |
291 Register bumped_count, Register scratch2, |
291 Register bumped_count, Register scratch2, |
292 bool decrement = false); |
292 bool decrement = false); |
293 void increment_mask_and_jump(Address counter_addr, |
293 void increment_mask_and_jump(Address counter_addr, |
294 int increment, int mask, |
294 int increment, Address mask_addr, |
295 Register scratch1, Register scratch2, |
295 Register scratch1, Register scratch2, |
296 Condition cond, Label *where); |
296 Condition cond, Label *where); |
297 void set_mdp_flag_at(int flag_constant, Register scratch); |
297 void set_mdp_flag_at(int flag_constant, Register scratch); |
298 void test_mdp_data_at(int offset, Register value, Label& not_equal_continue, |
298 void test_mdp_data_at(int offset, Register value, Label& not_equal_continue, |
299 Register scratch); |
299 Register scratch); |