comparison src/cpu/x86/vm/stubGenerator_x86_32.cpp @ 1368:93767e6a2dfd

6941529: SharedRuntime::raw_exception_handler_for_return_address must reset thread MethodHandle flag Summary: During testing a bug was hit when an exception returned to the interpreter and the SP was wrong. Reviewed-by: kvn, never
author twisti
date Thu, 08 Apr 2010 10:55:40 +0200
parents 6476042f815c
children 2338d41fbd81
comparison
equal deleted inserted replaced
1367:9e321dcfa5b7 1368:93767e6a2dfd
428 428
429 // Verify that there is really a valid exception in RAX. 429 // Verify that there is really a valid exception in RAX.
430 __ verify_oop(exception_oop); 430 __ verify_oop(exception_oop);
431 431
432 // Restore SP from BP if the exception PC is a MethodHandle call site. 432 // Restore SP from BP if the exception PC is a MethodHandle call site.
433 __ cmpl(Address(thread, JavaThread::is_method_handle_exception_offset()), 0); 433 __ cmpl(Address(thread, JavaThread::is_method_handle_return_offset()), 0);
434 __ cmovptr(Assembler::notEqual, rsp, rbp); 434 __ cmovptr(Assembler::notEqual, rsp, rbp);
435 435
436 // continue at exception handler (return address removed) 436 // continue at exception handler (return address removed)
437 // rax: exception 437 // rax: exception
438 // rbx: exception handler 438 // rbx: exception handler