comparison src/cpu/sparc/vm/interp_masm_sparc.hpp @ 2118:dd031b2226de

4930919: race condition in MDO creation at back branch locations Summary: Reuse set_method_data_for_bcp() to setup mdp after MDO creation. Reviewed-by: kvn, never
author iveresov
date Mon, 10 Jan 2011 18:46:29 -0800
parents f95d63e2154a
children fdb992d83a87
comparison
equal deleted inserted replaced
2117:70427f06ea47 2118:dd031b2226de
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
267 void lock_object (Register lock_reg, Register obj_reg); 267 void lock_object (Register lock_reg, Register obj_reg);
268 void unlock_object(Register lock_reg); 268 void unlock_object(Register lock_reg);
269 269
270 #ifndef CC_INTERP 270 #ifndef CC_INTERP
271 // Interpreter profiling operations 271 // Interpreter profiling operations
272 void set_method_data_pointer() { set_method_data_pointer_offset(noreg); } 272 void set_method_data_pointer();
273 void set_method_data_pointer_for_bcp(); 273 void set_method_data_pointer_for_bcp();
274 void set_method_data_pointer_offset(Register mdi_reg);
275 void test_method_data_pointer(Label& zero_continue); 274 void test_method_data_pointer(Label& zero_continue);
276 void verify_method_data_pointer(); 275 void verify_method_data_pointer();
277 void test_invocation_counter_for_mdp(Register invocation_count, Register cur_bcp, Register Rtmp, Label &profile_continue); 276 void test_invocation_counter_for_mdp(Register invocation_count, Register Rtmp, Label &profile_continue);
278 277
279 void set_mdp_data_at(int constant, Register value); 278 void set_mdp_data_at(int constant, Register value);
280 void increment_mdp_data_at(Address counter, Register bumped_count, 279 void increment_mdp_data_at(Address counter, Register bumped_count,
281 bool decrement = false); 280 bool decrement = false);
282 void increment_mdp_data_at(int constant, Register bumped_count, 281 void increment_mdp_data_at(int constant, Register bumped_count,