src/share/vm/runtime/sharedRuntime.cpp

Print this page
rev 4267 : 8009981: nashorn tests fail with -XX:+VerifyStack
Summary: nmethod::preserve_callee_argument_oops() must take appendix into account.
Reviewed-by:

*** 2726,2736 **** // Return argument 0 register. In the LP64 build pointers // take 2 registers, but the VM wants only the 'main' name. return regs.first(); } ! VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, int* arg_size) { // This method is returning a data structure allocating as a // ResourceObject, so do not put any ResourceMarks in here. char *s = sig->as_C_string(); int len = (int)strlen(s); *s++; len--; // Skip opening paren --- 2726,2736 ---- // Return argument 0 register. In the LP64 build pointers // take 2 registers, but the VM wants only the 'main' name. return regs.first(); } ! VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, bool has_appendix, int* arg_size) { // This method is returning a data structure allocating as a // ResourceObject, so do not put any ResourceMarks in here. char *s = sig->as_C_string(); int len = (int)strlen(s); *s++; len--; // Skip opening paren
*** 2770,2779 **** --- 2770,2784 ---- break; } default : ShouldNotReachHere(); } } + + if (has_appendix) { + sig_bt[cnt++] = T_OBJECT; + } + assert( cnt < 256, "grow table size" ); int comp_args_on_stack; comp_args_on_stack = java_calling_convention(sig_bt, regs, cnt, true);