Mercurial > pub > dyncall > dyncall
comparison doc/manual/callconvs/callconv_x64.tex @ 331:74c056b597b7
- disassembly example annotations
- callconv appendix in doc:
* ppc64 chapter
* some cleanups for consistency
author | Tassilo Philipp |
---|---|
date | Sat, 23 Nov 2019 13:51:35 +0100 |
parents | 276eb8c87aa0 |
children | 6e33db95e724 |
comparison
equal
deleted
inserted
replaced
330:4e6f63b7020e | 331:74c056b597b7 |
---|---|
95 \item if callee takes address of a parameter, first 4 parameters must be dumped (to the reserved space on the stack) - for | 95 \item if callee takes address of a parameter, first 4 parameters must be dumped (to the reserved space on the stack) - for |
96 floating point parameters, value must be stored in integer AND floating point register | 96 floating point parameters, value must be stored in integer AND floating point register |
97 \item caller cleans up the stack, not the callee (like cdecl) | 97 \item caller cleans up the stack, not the callee (like cdecl) |
98 \item stack is always 16byte aligned - since return address is 64 bits in size, stacks with an odd number of parameters are | 98 \item stack is always 16byte aligned - since return address is 64 bits in size, stacks with an odd number of parameters are |
99 already aligned | 99 already aligned |
100 \item ellipsis calls take floating point values in int and float registers (single precision floats are promoted to double precision | 100 \item ellipsis calls take floating point values in int and float registers (single precision floats are promoted to double precision as |
101 as defined for ellipsis calls) | 101 required by ellipsis calls) |
102 \item if size of parameters \textgreater\ 1 page of memory (usually between 4k and 64k), chkstk must be called | 102 \item if size of parameters \textgreater\ 1 page of memory (usually between 4k and 64k), chkstk must be called |
103 \end{itemize} | 103 \end{itemize} |
104 | 104 |
105 | 105 |
106 \paragraph{Return values} | 106 \paragraph{Return values} |