Mercurial > pub > dyncall > dyncall
comparison doc/manual/callconvs/callconv_sparc64.tex @ 478:6c72cb768099
callconv doc:
- mips o32 update w/ regards to aggregates
- mips o32 disas examples
- sparc64 doc fixes
author | Tassilo Philipp |
---|---|
date | Tue, 01 Mar 2022 00:16:50 +0100 |
parents | 5be9f5ccdd35 |
children | fc614cb865c6 |
comparison
equal
deleted
inserted
replaced
477:75c19f11b86a | 478:6c72cb768099 |
---|---|
110 \paragraph{Return values} | 110 \paragraph{Return values} |
111 | 111 |
112 \begin{itemize} | 112 \begin{itemize} |
113 \item results are expected by caller to be returned in \%o0-\%o3 (after reg window restore, meaning callee writes to \%i0-\%i3) for integers | 113 \item results are expected by caller to be returned in \%o0-\%o3 (after reg window restore, meaning callee writes to \%i0-\%i3) for integers |
114 \item \%d0,\%d2,\%d4,\%d6 are used for floating point values | 114 \item \%d0,\%d2,\%d4,\%d6 are used for floating point values |
115 \item the fields of aggregates (struct, union) \textless 32 bytes are returned via registers registers mentioned above (which are | 115 \item the fields of aggregates (struct, union) \textless= 32 bytes are returned via registers mentioned above (which are |
116 assigned following the same logic as when passing the aggregate as a first argument to a function) | 116 assigned following the same logic as when passing the aggregate as a first argument to a function) |
117 \item aggregates (struct, union) \textgreater= 32 bytes are returned in a space allocated by the caller, with a pointer to it | 117 \item aggregates (struct, union) \textgreater 32 bytes are returned in a space allocated by the caller, with a pointer to it |
118 passed as first parameter to the function called (meaning in \%o0) | 118 passed as first parameter to the function called (meaning in \%o0) |
119 % from spec: | 119 % from spec: |
120 %Structure and union return types up to thirty-two bytes in size are returned in registers. The registers are assigned as if | 120 %Structure and union return types up to thirty-two bytes in size are returned in registers. The registers are assigned as if |
121 %the value was being passed as the first argument to a function with a known prototype. | 121 %the value was being passed as the first argument to a function with a known prototype. |
122 %For types with a larger size the caller allocates an area large enough and aligned properly to hold the return value, and | 122 %For types with a larger size the caller allocates an area large enough and aligned properly to hold the return value, and |