src/cpu/x86/vm/macroAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8080650 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/macroAssembler_x86.cpp

Print this page




6230     if (PreserveFramePointer) {
6231       mov(rbp, rsp);
6232     }
6233     // Remove word for ebp
6234     framesize -= wordSize;
6235 
6236     // Create frame
6237     if (framesize) {
6238       subptr(rsp, framesize);
6239     }
6240   } else {
6241     // Create frame (force generation of a 4 byte immediate value)
6242     subptr_imm32(rsp, framesize);
6243 
6244     // Save RBP register now.
6245     framesize -= wordSize;
6246     movptr(Address(rsp, framesize), rbp);
6247     // Save caller's stack pointer into RBP if the frame pointer is preserved.
6248     if (PreserveFramePointer) {
6249       movptr(rbp, rsp);
6250       addptr(rbp, framesize + wordSize);
6251     }
6252   }
6253 
6254   if (VerifyStackAtCalls) { // Majik cookie to verify stack depth
6255     framesize -= wordSize;
6256     movptr(Address(rsp, framesize), (int32_t)0xbadb100d);
6257   }
6258 
6259 #ifndef _LP64
6260   // If method sets FPU control word do it now
6261   if (fp_mode_24b) {
6262     fldcw(ExternalAddress(StubRoutines::addr_fpu_cntrl_wrd_24()));
6263   }
6264   if (UseSSE >= 2 && VerifyFPU) {
6265     verify_FPU(0, "FPU stack must be clean on entry");
6266   }
6267 #endif
6268 
6269 #ifdef ASSERT
6270   if (VerifyStackAtCalls) {




6230     if (PreserveFramePointer) {
6231       mov(rbp, rsp);
6232     }
6233     // Remove word for ebp
6234     framesize -= wordSize;
6235 
6236     // Create frame
6237     if (framesize) {
6238       subptr(rsp, framesize);
6239     }
6240   } else {
6241     // Create frame (force generation of a 4 byte immediate value)
6242     subptr_imm32(rsp, framesize);
6243 
6244     // Save RBP register now.
6245     framesize -= wordSize;
6246     movptr(Address(rsp, framesize), rbp);
6247     // Save caller's stack pointer into RBP if the frame pointer is preserved.
6248     if (PreserveFramePointer) {
6249       movptr(rbp, rsp);

6250     }
6251   }
6252 
6253   if (VerifyStackAtCalls) { // Majik cookie to verify stack depth
6254     framesize -= wordSize;
6255     movptr(Address(rsp, framesize), (int32_t)0xbadb100d);
6256   }
6257 
6258 #ifndef _LP64
6259   // If method sets FPU control word do it now
6260   if (fp_mode_24b) {
6261     fldcw(ExternalAddress(StubRoutines::addr_fpu_cntrl_wrd_24()));
6262   }
6263   if (UseSSE >= 2 && VerifyFPU) {
6264     verify_FPU(0, "FPU stack must be clean on entry");
6265   }
6266 #endif
6267 
6268 #ifdef ASSERT
6269   if (VerifyStackAtCalls) {


src/cpu/x86/vm/macroAssembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File