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}