comparison src/cpu/sparc/vm/methodHandles_sparc.cpp @ 1579:e9ff18c4ace7

Merge
author jrose
date Wed, 02 Jun 2010 22:45:42 -0700
parents c18cbe5936b8 61b2245abf36
children d55217dc206f
comparison
equal deleted inserted replaced
1562:dfe27f03244a 1579:e9ff18c4ace7
373 373
374 // Push arguments as if coming from the interpreter. 374 // Push arguments as if coming from the interpreter.
375 Register O0_scratch = O0_argslot; 375 Register O0_scratch = O0_argslot;
376 int stackElementSize = Interpreter::stackElementSize; 376 int stackElementSize = Interpreter::stackElementSize;
377 377
378 // Make space on the stack for the arguments. 378 // Make space on the stack for the arguments and set Gargs
379 __ sub(SP, 4*stackElementSize, SP); 379 // correctly.
380 __ sub(Gargs, 3*stackElementSize, Gargs); 380 __ sub(SP, 4*stackElementSize, SP); // Keep stack aligned.
381 //__ sub(Lesp, 3*stackElementSize, Lesp); 381 __ add(SP, (frame::varargs_offset)*wordSize - 1*Interpreter::stackElementSize + STACK_BIAS + BytesPerWord, Gargs);
382 382
383 // void raiseException(int code, Object actual, Object required) 383 // void raiseException(int code, Object actual, Object required)
384 __ st( O1_scratch, Address(Gargs, 2*stackElementSize)); // code 384 __ st( O1_scratch, Address(Gargs, 2*stackElementSize)); // code
385 __ st_ptr(O2_scratch, Address(Gargs, 1*stackElementSize)); // actual 385 __ st_ptr(O2_scratch, Address(Gargs, 1*stackElementSize)); // actual
386 __ st_ptr(O3_scratch, Address(Gargs, 0*stackElementSize)); // required 386 __ st_ptr(O3_scratch, Address(Gargs, 0*stackElementSize)); // required