aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/sparc/vm/methodHandles_sparc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/sparc/vm/methodHandles_sparc.cpp')
-rw-r--r--src/cpu/sparc/vm/methodHandles_sparc.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cpu/sparc/vm/methodHandles_sparc.cpp b/src/cpu/sparc/vm/methodHandles_sparc.cpp
index 2c26318b1..3c02696a6 100644
--- a/src/cpu/sparc/vm/methodHandles_sparc.cpp
+++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp
@@ -375,10 +375,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
Register O0_scratch = O0_argslot;
int stackElementSize = Interpreter::stackElementSize;
- // Make space on the stack for the arguments.
- __ sub(SP, 4*stackElementSize, SP);
- __ sub(Gargs, 3*stackElementSize, Gargs);
- //__ sub(Lesp, 3*stackElementSize, Lesp);
+ // Make space on the stack for the arguments and set Gargs
+ // correctly.
+ __ sub(SP, 4*stackElementSize, SP); // Keep stack aligned.
+ __ add(SP, (frame::varargs_offset)*wordSize - 1*Interpreter::stackElementSize + STACK_BIAS + BytesPerWord, Gargs);
// void raiseException(int code, Object actual, Object required)
__ st( O1_scratch, Address(Gargs, 2*stackElementSize)); // code