1.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp Tue Jun 01 11:48:33 2010 -0700 1.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp Wed Jun 02 22:45:42 2010 -0700 1.3 @@ -375,10 +375,10 @@ 1.4 Register O0_scratch = O0_argslot; 1.5 int stackElementSize = Interpreter::stackElementSize; 1.6 1.7 - // Make space on the stack for the arguments. 1.8 - __ sub(SP, 4*stackElementSize, SP); 1.9 - __ sub(Gargs, 3*stackElementSize, Gargs); 1.10 - //__ sub(Lesp, 3*stackElementSize, Lesp); 1.11 + // Make space on the stack for the arguments and set Gargs 1.12 + // correctly. 1.13 + __ sub(SP, 4*stackElementSize, SP); // Keep stack aligned. 1.14 + __ add(SP, (frame::varargs_offset)*wordSize - 1*Interpreter::stackElementSize + STACK_BIAS + BytesPerWord, Gargs); 1.15 1.16 // void raiseException(int code, Object actual, Object required) 1.17 __ st( O1_scratch, Address(Gargs, 2*stackElementSize)); // code