Mercurial > hg > graal-compiler
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 |