Mercurial > pub > dyncall > dyncall
annotate doc/manual/callconvs/callconv_ppc64.tex @ 322:a1fcb3e02270
- doc: stack layout fix for mips/o32
author | Tassilo Philipp |
---|---|
date | Sat, 16 Nov 2019 00:12:32 +0100 |
parents | b0cca984c740 |
children | 276eb8c87aa0 |
rev | line source |
---|---|
0 | 1 %////////////////////////////////////////////////////////////////////////////// |
2 % | |
3 % Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>, | |
4 % Tassilo Philipp <tphilipp@potion-studios.com> | |
5 % | |
6 % Permission to use, copy, modify, and distribute this software for any | |
7 % purpose with or without fee is hereby granted, provided that the above | |
8 % copyright notice and this permission notice appear in all copies. | |
9 % | |
10 % THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 % WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 % MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 % ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 % WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 % ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 % OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 % | |
18 %////////////////////////////////////////////////////////////////////////////// | |
19 | |
20 % ================================================== | |
21 % PowerPC 64 | |
22 % ================================================== | |
23 \subsection{PowerPC (64bit) Calling Convention} | |
24 | |
25 \paragraph{Overview} | |
26 | |
27 \begin{itemize} | |
28 \item Word size is 64 bits | |
29 \item Big endian (MSB) and litte endian (LSB) operating modes. | |
30 \item Apple Mac OS X/Darwin PPC is specified in "Mac OS X ABI Function Call Guide"\cite{ppcMacOSX}. It uses Big Endian (MSB). | |
31 \item Linux PPC 64-bit ABI is specified in "64-bit PowerPC ELF Application Binary Interface Supplement"\cite{ppcelf64abi} which is based on "System V ABI". | |
32 \end{itemize} | |
33 | |
34 \paragraph{\product{dyncall} support} | |
35 | |
7 | 36 \product{Dyncall} supports PowerPC (64bit) Big Endian and Little Endian ELF ABIs on System V systems (Linux, etc.), including syscalls. Mac OS X is not supported. |
0 | 37 |
38 | |
39 \subsubsection{PPC64 ELF ABI} | |
40 | |
41 \paragraph{Registers and register usage} | |
42 | |
43 @@@ | |
44 | |
45 | |
46 \paragraph{Parameter passing} | |
47 | |
132
b0cca984c740
- manual update, started splitting platform overview in EP and EL for some platforms
cslag
parents:
125
diff
changeset
|
48 @@@ |
123 | 49 \begin{itemize} |
125 | 50 \item integer parameters \textless\ 64 bit are right-justified (meaning occupy higher-address bytes) in their 8-byte slot on the stack, requiring extra-care for big-endian targets |
123 | 51 \end{itemize} |
0 | 52 |
53 | |
54 \paragraph{Return values} | |
55 | |
56 @@@ | |
57 | |
58 | |
59 \paragraph{Stack layout} | |
60 | |
61 @@@ | |
62 |