hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp
changeset 30305 b92a97e1e9cb
parent 30299 1f6f7d1e0c1e
child 30310 522ea430079f
equal deleted inserted replaced
30302:ecca632210ef 30305:b92a97e1e9cb
  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);