8133646: Internal Error: x86/vm/macroAssembler_x86.cpp:886 DEBUG MESSAGE: StubRoutines::call_stub: threads must correspond
Reviewed-by: kvn, coleenp, dcubed
This commit is contained in:
parent
9ee2b211f9
commit
10afc2dfd2
@ -367,16 +367,20 @@ class StubGenerator: public StubCodeGenerator {
|
||||
#ifdef ASSERT
|
||||
// verify that threads correspond
|
||||
{
|
||||
Label L, S;
|
||||
Label L1, L2, L3;
|
||||
__ cmpptr(r15_thread, thread);
|
||||
__ jcc(Assembler::notEqual, S);
|
||||
__ jcc(Assembler::equal, L1);
|
||||
__ stop("StubRoutines::call_stub: r15_thread is corrupted");
|
||||
__ bind(L1);
|
||||
__ get_thread(rbx);
|
||||
__ cmpptr(r15_thread, thread);
|
||||
__ jcc(Assembler::equal, L2);
|
||||
__ stop("StubRoutines::call_stub: r15_thread is modified by call");
|
||||
__ bind(L2);
|
||||
__ cmpptr(r15_thread, rbx);
|
||||
__ jcc(Assembler::equal, L);
|
||||
__ bind(S);
|
||||
__ jcc(Assembler::equal, L);
|
||||
__ jcc(Assembler::equal, L3);
|
||||
__ stop("StubRoutines::call_stub: threads must correspond");
|
||||
__ bind(L);
|
||||
__ bind(L3);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -450,15 +454,20 @@ class StubGenerator: public StubCodeGenerator {
|
||||
#ifdef ASSERT
|
||||
// verify that threads correspond
|
||||
{
|
||||
Label L, S;
|
||||
Label L1, L2, L3;
|
||||
__ cmpptr(r15_thread, thread);
|
||||
__ jcc(Assembler::notEqual, S);
|
||||
__ jcc(Assembler::equal, L1);
|
||||
__ stop("StubRoutines::catch_exception: r15_thread is corrupted");
|
||||
__ bind(L1);
|
||||
__ get_thread(rbx);
|
||||
__ cmpptr(r15_thread, thread);
|
||||
__ jcc(Assembler::equal, L2);
|
||||
__ stop("StubRoutines::catch_exception: r15_thread is modified by call");
|
||||
__ bind(L2);
|
||||
__ cmpptr(r15_thread, rbx);
|
||||
__ jcc(Assembler::equal, L);
|
||||
__ bind(S);
|
||||
__ jcc(Assembler::equal, L3);
|
||||
__ stop("StubRoutines::catch_exception: threads must correspond");
|
||||
__ bind(L);
|
||||
__ bind(L3);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user