# HG changeset patch # User cslag # Date 1467641639 -7200 # Node ID d203ba52c2467fa0d2475b709f759115538737a1 # Parent f63467916f98879f5d70e7cd226a050919e97dd4 - manual callconv clarifications diff -r f63467916f98 -r d203ba52c246 doc/manual/callconvs/callconv_mips64.tex --- a/doc/manual/callconvs/callconv_mips64.tex Mon Jul 04 01:11:08 2016 +0200 +++ b/doc/manual/callconvs/callconv_mips64.tex Mon Jul 04 16:13:59 2016 +0200 @@ -74,6 +74,7 @@ \item all stack regions are 16-byte aligned \item results are returned in \$v0, and for a second one \$v1 is used \item float arguments passed in the variable part of a vararg call are passed like integers +\item integer parameters \textless\ 64 bit are right-justified (meaning occupy higher-address bytes) in their 8-byte area, requiring extra-care for big-endian targets \end{itemize} \paragraph{Stack layout} diff -r f63467916f98 -r d203ba52c246 doc/manual/callconvs/callconv_ppc32.tex --- a/doc/manual/callconvs/callconv_ppc32.tex Mon Jul 04 01:11:08 2016 +0200 +++ b/doc/manual/callconvs/callconv_ppc32.tex Mon Jul 04 16:13:59 2016 +0200 @@ -86,10 +86,10 @@ as defined for ellipsis calls) \item all nonvector parameters are aligned on 4-byte boundaries \item vector parameters are aligned on 16-byte boundaries -\item integer parameters \textless\ 32 bit occupy high-order bytes of their 4-byte area \item composite parameters with size of 1 or 2 bytes occupy low-order bytes of their 4-byte area. INCONSISTENT with other 32-bit PPC binary interfaces. In AIX and OS 9, padding bytes always follow the data structure \item composite parameters 3 bytes or larger in size occupy high-order bytes +\item integer parameters \textless\ 32 bit are right-justified (meaning occupy higher-address bytes) in their 4-byte area, requiring extra-care for big-endian targets \end{itemize} @@ -198,7 +198,7 @@ 32-bit general purpose registers (an odd and an even e.g. r3 and r4), probably skipping an even integer register. or passed on the stack. They are never splitted into a register and stack part. \item Ellipse calls set CR bit 6 - +\item integer parameters \textless\ 32 bit are right-justified (meaning occupy high-order bytes) in their 4-byte area, requiring extra-care for big-endian targets \end{itemize} \paragraph{Return values} diff -r f63467916f98 -r d203ba52c246 doc/manual/callconvs/callconv_ppc64.tex --- a/doc/manual/callconvs/callconv_ppc64.tex Mon Jul 04 01:11:08 2016 +0200 +++ b/doc/manual/callconvs/callconv_ppc64.tex Mon Jul 04 16:13:59 2016 +0200 @@ -45,7 +45,10 @@ \paragraph{Parameter passing} +\begin{itemize} @@@ +\item integer parameters \textless\ 64 bit are right-justified (meaning occupy higher-address bytes) in their 8-byte area, requiring extra-care for big-endian targets +\end{itemize} \paragraph{Return values}