861 st->print("\n\t"); |
861 st->print("\n\t"); |
862 framesize -= wordSize; |
862 framesize -= wordSize; |
863 st->print("movq [rsp + #%d], rbp\t# Save rbp",framesize); |
863 st->print("movq [rsp + #%d], rbp\t# Save rbp",framesize); |
864 if (PreserveFramePointer) { |
864 if (PreserveFramePointer) { |
865 st->print("\n\t"); |
865 st->print("\n\t"); |
866 st->print("movq rbp, [rsp + #%d]\t# Save the caller's SP into rbp", (framesize + wordSize)); |
866 st->print("movq rbp, rsp\t# Save the caller's SP into rbp"); |
|
867 if (framesize > 0) { |
|
868 st->print("\n\t"); |
|
869 st->print("addq rbp, #%d", framesize); |
|
870 } |
867 } |
871 } |
868 } |
872 } |
869 |
873 |
870 if (VerifyStackAtCalls) { |
874 if (VerifyStackAtCalls) { |
871 st->print("\n\t"); |
875 st->print("\n\t"); |