MSDN documents for .saveframe, .pushreg, .savereg, .savexmm128, .setframe, etc don’t contain any helpful information.
Do you know any documents which explain how to use them, how they are different from each other, especially .pushreg and .savereg? And how to use .savexmm128?
Added : There is a good documentation on x64 assembly coding. This one is from a open source assembler, YASM. This document explains the most basic things : What a frame function is, a simple example.
However, the example doesn’t contain epilog code which is parallel to the one in prolog block.
On Windows, if there is no “pop”s in the end of a function, it crashes. (Tested with the ml64.exe, not the YASM.)
Anyway, there is no explanation on the difference of .savereg and .pushreg.