1) well, your original claim was that if a called function doesn't use any special registers, then it won't be used. That however is clearly false, as the called function is free to use the home space for whatever it likes. There is no "requirement" or "intent" to use it for register spill, the optimizer is free to use this space.
2/3) Well, what other x64 calling convention on windows do you know of?
4) That seems to be correct, according to MSDN and to code I've seen. My initial claim that it is not fixed and dependent on number of parameters was wrong.
|