src/cpu/x86/vm/stubGenerator_x86_32.cpp

changeset 2603
1b4e6a5d98e0
parent 2595
d89a22843c62
child 2606
0ac769a57c64
equal deleted inserted replaced
2602:41d4973cf100 2603:1b4e6a5d98e0
436 } 436 }
437 #endif 437 #endif
438 438
439 // Verify that there is really a valid exception in RAX. 439 // Verify that there is really a valid exception in RAX.
440 __ verify_oop(exception_oop); 440 __ verify_oop(exception_oop);
441
442 // Restore SP from BP if the exception PC is a MethodHandle call site.
443 __ cmpl(Address(thread, JavaThread::is_method_handle_return_offset()), 0);
444 __ cmovptr(Assembler::notEqual, rsp, rbp);
445 441
446 // continue at exception handler (return address removed) 442 // continue at exception handler (return address removed)
447 // rax: exception 443 // rax: exception
448 // rbx: exception handler 444 // rbx: exception handler
449 // rdx: throwing pc 445 // rdx: throwing pc

mercurial