comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 13086:096c224171c4

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 20 Nov 2013 00:10:38 +0100
parents 6b0fd0964b87 e2509677809c
children f6c04e69cf75
comparison
equal deleted inserted replaced
12782:92b7ec34ddfa 13086:096c224171c4
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 // ---------------------------------------------------------------
3604 3592
3605 // Move the pending exception from exception_oop to Oexception so 3593 // Move the pending exception from exception_oop to Oexception so
3606 // the pending exception will be picked up the interpreter. 3594 // the pending exception will be picked up the interpreter.
3607 __ ld_ptr(G2_thread, in_bytes(JavaThread::exception_oop_offset()), Oexception); 3595 __ ld_ptr(G2_thread, in_bytes(JavaThread::exception_oop_offset()), Oexception);
3608 __ st_ptr(G0, G2_thread, in_bytes(JavaThread::exception_oop_offset())); 3596 __ st_ptr(G0, G2_thread, in_bytes(JavaThread::exception_oop_offset()));
3597 __ st_ptr(G0, G2_thread, in_bytes(JavaThread::exception_pc_offset()));
3609 __ bind(noException); 3598 __ bind(noException);
3610 3599
3611 // deallocate the deoptimization frame taking care to preserve the return values 3600 // deallocate the deoptimization frame taking care to preserve the return values
3612 __ mov(Oreturn0, Oreturn0->after_save()); 3601 __ mov(Oreturn0, Oreturn0->after_save());
3613 __ mov(Oreturn1, Oreturn1->after_save()); 3602 __ mov(Oreturn1, Oreturn1->after_save());