comparison src/cpu/x86/vm/methodHandles_x86.cpp @ 3937:c565834fb592

7088020: SEGV in JNIHandleBlock::release_block Reviewed-by: kvn, twisti
author never
date Sat, 10 Sep 2011 00:11:04 -0700
parents c26de9aef2ed
children 0abefdb54d21
comparison
equal deleted inserted replaced
3936:2c24ef16533d 3937:c565834fb592
622 622
623 __ jump_to_method_handle_entry(rcx_recv, rdi_temp); 623 __ jump_to_method_handle_entry(rcx_recv, rdi_temp);
624 624
625 // error path for invokeExact (only) 625 // error path for invokeExact (only)
626 __ bind(invoke_exact_error_path); 626 __ bind(invoke_exact_error_path);
627 // ensure that the top of stack is properly aligned.
628 __ mov(rdi, rsp);
629 __ andptr(rsp, -StackAlignmentInBytes); // Align the stack for the ABI
630 __ pushptr(Address(rdi, 0)); // Pick up the return address
631
627 // Stub wants expected type in rax and the actual type in rcx 632 // Stub wants expected type in rax and the actual type in rcx
628 __ jump(ExternalAddress(StubRoutines::throw_WrongMethodTypeException_entry())); 633 __ jump(ExternalAddress(StubRoutines::throw_WrongMethodTypeException_entry()));
629 634
630 // for invokeGeneric (only), apply argument and result conversions on the fly 635 // for invokeGeneric (only), apply argument and result conversions on the fly
631 __ bind(invoke_generic_slow_path); 636 __ bind(invoke_generic_slow_path);