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