Mercurial > hg > graal-compiler
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()); |