Mercurial > pub > dyncall > dyncall
diff doc/manual/callconvs/callconv_ppc64.tex @ 345:c607d67cd6b8 r1.1-RC2
- doc: added syscall info to appendix, fixed broken literature link
- cleanup, added missing forward declarations, ...
author | Tassilo Philipp |
---|---|
date | Tue, 07 Jan 2020 21:52:57 +0100 |
parents | 74c056b597b7 |
children | b47168dacba6 |
line wrap: on
line diff
--- a/doc/manual/callconvs/callconv_ppc64.tex Tue Jan 07 11:34:31 2020 +0100 +++ b/doc/manual/callconvs/callconv_ppc64.tex Tue Jan 07 21:52:57 2020 +0100 @@ -33,7 +33,11 @@ \paragraph{\product{dyncall} support} -\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. +\product{Dyncall} and \product{dyncallback} are supported for PowerPC (64bit) +Big Endian and Little Endian ELF ABIs on System V systems. Mac OS X is not +supported.\\ +\product{Dyncall} can also be used to issue syscalls by using the syscall +number as target parameter and selecting the correct mode. \subsubsection{PPC64 ELF ABI} @@ -152,3 +156,19 @@ \caption{Stack layout on ppc64 ELF ABI} \end{figure} + +\newpage + +\subsubsection{System V syscalls} + +\paragraph{Parameter passing} + +\begin{itemize} +\item syscall is issued via the {\em sc} instruction +\item kernel destroys registers r13 +\item syscall number is set in r0 +\item params are passed in registers r3 through r10 +\item no stack in use, meaning syscalls are in theory limited to eight arguments +\item register r3 holds the return value, overflow flag in conditional register cr0 signals errors in syscall +\end{itemize} +