Mercurial > hg > graal-jvmci-8
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 // --------------------------------------------------------------- |