564 st->print("\n\t"); |
564 st->print("\n\t"); |
565 framesize -= wordSize; |
565 framesize -= wordSize; |
566 st->print("MOV [ESP + #%d], EBP\t# Save EBP",framesize); |
566 st->print("MOV [ESP + #%d], EBP\t# Save EBP",framesize); |
567 if (PreserveFramePointer) { |
567 if (PreserveFramePointer) { |
568 st->print("\n\t"); |
568 st->print("\n\t"); |
569 st->print("MOV EBP, [ESP + #%d]\t# Save the caller's SP into EBP", (framesize + wordSize)); |
569 st->print("MOV EBP, ESP\t# Save the caller's SP into EBP"); |
|
570 if (framesize > 0) { |
|
571 st->print("\n\t"); |
|
572 st->print("ADD EBP, #%d", framesize); |
|
573 } |
570 } |
574 } |
571 } |
575 } |
572 |
576 |
573 if (VerifyStackAtCalls) { |
577 if (VerifyStackAtCalls) { |
574 st->print("\n\t"); |
578 st->print("\n\t"); |