hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp
changeset 5687 b862d1f189bd
parent 5420 586d3988e72b
child 5702 201c5cde25bb
equal deleted inserted replaced
5686:5435e77aa3df 5687:b862d1f189bd
   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