comparison src/share/vm/runtime/sharedRuntime.cpp @ 10390:28e5aed7f3a6

8009981: nashorn tests fail with -XX:+VerifyStack Summary: nmethod::preserve_callee_argument_oops() must take appendix into account. Reviewed-by: kvn, twisti
author roland
date Fri, 31 May 2013 14:40:26 +0200
parents f0bc60565ba8
children 836a62f43af9 ef57c43512d6 b5c8a61d7fa0
comparison
equal deleted inserted replaced
10389:f15fe46d8c00 10390:28e5aed7f3a6
2724 // Return argument 0 register. In the LP64 build pointers 2724 // Return argument 0 register. In the LP64 build pointers
2725 // take 2 registers, but the VM wants only the 'main' name. 2725 // take 2 registers, but the VM wants only the 'main' name.
2726 return regs.first(); 2726 return regs.first();
2727 } 2727 }
2728 2728
2729 VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, int* arg_size) { 2729 VMRegPair *SharedRuntime::find_callee_arguments(Symbol* sig, bool has_receiver, bool has_appendix, int* arg_size) {
2730 // This method is returning a data structure allocating as a 2730 // This method is returning a data structure allocating as a
2731 // ResourceObject, so do not put any ResourceMarks in here. 2731 // ResourceObject, so do not put any ResourceMarks in here.
2732 char *s = sig->as_C_string(); 2732 char *s = sig->as_C_string();
2733 int len = (int)strlen(s); 2733 int len = (int)strlen(s);
2734 *s++; len--; // Skip opening paren 2734 *s++; len--; // Skip opening paren
2768 break; 2768 break;
2769 } 2769 }
2770 default : ShouldNotReachHere(); 2770 default : ShouldNotReachHere();
2771 } 2771 }
2772 } 2772 }
2773
2774 if (has_appendix) {
2775 sig_bt[cnt++] = T_OBJECT;
2776 }
2777
2773 assert( cnt < 256, "grow table size" ); 2778 assert( cnt < 256, "grow table size" );
2774 2779
2775 int comp_args_on_stack; 2780 int comp_args_on_stack;
2776 comp_args_on_stack = java_calling_convention(sig_bt, regs, cnt, true); 2781 comp_args_on_stack = java_calling_convention(sig_bt, regs, cnt, true);
2777 2782