comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 13071:e2509677809c

8023037: Race between ciEnv::register_method and nmethod::make_not_entrant_or_zombie Reviewed-by: kvn, iveresov
author vlivanov
date Fri, 08 Nov 2013 01:13:11 -0800
parents e504cd481ec0
children 096c224171c4 de6a9e811145 da862781b584
comparison
equal deleted inserted replaced
13047:be525e91f65b 13071:e2509677809c
1000 // we try and find the callee by normal means a safepoint 1000 // we try and find the callee by normal means a safepoint
1001 // is possible. So we stash the desired callee in the thread 1001 // is possible. So we stash the desired callee in the thread
1002 // and the vm will find there should this case occur. 1002 // and the vm will find there should this case occur.
1003 Address callee_target_addr(G2_thread, JavaThread::callee_target_offset()); 1003 Address callee_target_addr(G2_thread, JavaThread::callee_target_offset());
1004 __ st_ptr(G5_method, callee_target_addr); 1004 __ st_ptr(G5_method, callee_target_addr);
1005
1006 if (StressNonEntrant) {
1007 // Open a big window for deopt failure
1008 __ save_frame(0);
1009 __ mov(G0, L0);
1010 Label loop;
1011 __ bind(loop);
1012 __ sub(L0, 1, L0);
1013 __ br_null_short(L0, Assembler::pt, loop);
1014 __ restore();
1015 }
1016
1017 __ jmpl(G3, 0, G0); 1005 __ jmpl(G3, 0, G0);
1018 __ delayed()->nop(); 1006 __ delayed()->nop();
1019 } 1007 }
1020 1008
1021 // --------------------------------------------------------------- 1009 // ---------------------------------------------------------------