# HG changeset patch # User Tassilo Philipp # Date 1489446451 -3600 # Node ID 06ee88ce4962fa25564ad9e51b2c5b6d8fee14d6 # Parent b827c074b4daa94356151ff5bdf089de0da32682 - doc and comment fixes diff -r b827c074b4da -r 06ee88ce4962 doc/manual/callconvs/callconv_mips.tex --- a/doc/manual/callconvs/callconv_mips.tex Mon Mar 13 14:13:26 2017 +0100 +++ b/doc/manual/callconvs/callconv_mips.tex Tue Mar 14 00:07:31 2017 +0100 @@ -75,7 +75,7 @@ \item Stack grows down \item Stack parameter order: right-to-left \item Caller cleans up the stack -\item first 8 integers (<= 32bit) are passed in registers \$a0-\$a7 +\item first 8 integers (\textless=\ 32bit) are passed in registers \$a0-\$a7 \item first 8 single precision floating point arguments are passed in registers \$f12-\$f19 \item if either integer or float registers are used up, the stack is used \item 64-bit stack arguments are always aligned to 8 bytes diff -r b827c074b4da -r 06ee88ce4962 doc/manual/callconvs/callconv_sparc.tex --- a/doc/manual/callconvs/callconv_sparc.tex Mon Mar 13 14:13:26 2017 +0100 +++ b/doc/manual/callconvs/callconv_sparc.tex Tue Mar 14 00:07:31 2017 +0100 @@ -62,11 +62,11 @@ \item stack always aligned to 8 bytes \item first 6 integers and floats are passed independently in registers using \%o0-\%o5 \item for every other argument the stack is used -\item all arguments <= 32 bit are passed as 32 bit values -\item 64 bit arguments are passed like two consecutive <= 32 bit values +\item all arguments \textless=\ 32 bit are passed as 32 bit values +\item 64 bit arguments are passed like two consecutive \textless=\ 32 bit values \item minimum stack size is 64 bytes, b/c stack pointer must always point at enough space to store all \%i* and \%l* registers, used when running out of register windows \item if needed, register spill area is adjacent to parameters -\item results are expected by caller to be returned in \%o0\%o1 (after reg window restore, meaning callee writes to \%i0\%i1) for integers, \%f0/\%f1 for floats, and for structs/unions a pointer to them is used as a hidden stack parameter (see below) +\item results are expected by caller to be returned in \%o0/\%o1 (after reg window restore, meaning callee writes to \%i0/\%i1) for integers, \%f0/\%f1 for floats, and for structs/unions a pointer to them is used as a hidden stack parameter (see below) \end{itemize} \paragraph{Stack layout} diff -r b827c074b4da -r 06ee88ce4962 doc/manual/callconvs/callconv_sparc64.tex --- a/doc/manual/callconvs/callconv_sparc64.tex Mon Mar 13 14:13:26 2017 +0100 +++ b/doc/manual/callconvs/callconv_sparc64.tex Tue Mar 14 00:07:31 2017 +0100 @@ -27,7 +27,7 @@ \paragraph{\product{dyncall} support} -\product{dyncall} fully supports the SPARC 64-bit instruction set (V9), \product{dyncallback} support is missing, though. +\product{dyncall} fully supports the SPARC 64-bit instruction set (V9), for calls and callbacks. \subsubsection{SPARC (64-bit) Calling Convention} diff -r b827c074b4da -r 06ee88ce4962 dyncallback/dyncall_callback_sparc32.s --- a/dyncallback/dyncall_callback_sparc32.s Mon Mar 13 14:13:26 2017 +0100 +++ b/dyncallback/dyncall_callback_sparc32.s Tue Mar 14 00:07:31 2017 +0100 @@ -51,13 +51,13 @@ add %fp, 68, %l0 st %l0, [ %sp + 64 ] /* init arg_ptr */ - /* Zero retval store (for data < word size). */ + /* Zero retval store. */ st %g0, [ %sp + 72 ] st %g0, [ %sp + 76 ] /* Prepare callback handler call. */ mov %g1, %o0 /* Param 0 = DCCallback*, %g1 holds ptr to thunk */ - add %sp, 64, %o1 /* Param 1 = DCArgs* (ptr to struct with args ptr */ + add %sp, 64, %o1 /* Param 1 = DCArgs* (ptr to struct with args ptr) */ add %sp, 72, %o2 /* Param 2 = results ptr to 8b of local stack data */ ld [ %g1 + 28 ], %o3 /* Param 3 = userdata ptr */ diff -r b827c074b4da -r 06ee88ce4962 dyncallback/dyncall_thunk_sparc64.c --- a/dyncallback/dyncall_thunk_sparc64.c Mon Mar 13 14:13:26 2017 +0100 +++ b/dyncallback/dyncall_thunk_sparc64.c Tue Mar 14 00:07:31 2017 +0100 @@ -6,7 +6,7 @@ Description: Thunk - Implementation for sparc64 License: - Copyright (c) 2007-2015 Daniel Adler , + Copyright (c) 2007-2017 Daniel Adler , Tassilo Philipp Permission to use, copy, modify, and distribute this software for any