equal
deleted
inserted
replaced
6088 generate_stack_overflow_check(stack_bang_size); |
6088 generate_stack_overflow_check(stack_bang_size); |
6089 |
6089 |
6090 // We always push rbp, so that on return to interpreter rbp, will be |
6090 // We always push rbp, so that on return to interpreter rbp, will be |
6091 // restored correctly and we can correct the stack. |
6091 // restored correctly and we can correct the stack. |
6092 push(rbp); |
6092 push(rbp); |
|
6093 // Save caller's stack pointer into RBP if the frame pointer is preserved. |
|
6094 if (PreserveFramePointer) { |
|
6095 mov(rbp, rsp); |
|
6096 } |
6093 // Remove word for ebp |
6097 // Remove word for ebp |
6094 framesize -= wordSize; |
6098 framesize -= wordSize; |
6095 |
6099 |
6096 // Create frame |
6100 // Create frame |
6097 if (framesize) { |
6101 if (framesize) { |
6102 subptr_imm32(rsp, framesize); |
6106 subptr_imm32(rsp, framesize); |
6103 |
6107 |
6104 // Save RBP register now. |
6108 // Save RBP register now. |
6105 framesize -= wordSize; |
6109 framesize -= wordSize; |
6106 movptr(Address(rsp, framesize), rbp); |
6110 movptr(Address(rsp, framesize), rbp); |
|
6111 // Save caller's stack pointer into RBP if the frame pointer is preserved. |
|
6112 if (PreserveFramePointer) { |
|
6113 movptr(rbp, rsp); |
|
6114 addptr(rbp, framesize + wordSize); |
|
6115 } |
6107 } |
6116 } |
6108 |
6117 |
6109 if (VerifyStackAtCalls) { // Majik cookie to verify stack depth |
6118 if (VerifyStackAtCalls) { // Majik cookie to verify stack depth |
6110 framesize -= wordSize; |
6119 framesize -= wordSize; |
6111 movptr(Address(rsp, framesize), (int32_t)0xbadb100d); |
6120 movptr(Address(rsp, framesize), (int32_t)0xbadb100d); |