Mercurial > pub > dyncall > dyncall
comparison doc/manual/callconvs/callconv_mips.tex @ 111:6da2a7ee2a86
- doc updates for mips32
author | cslag |
---|---|
date | Sat, 18 Jun 2016 19:49:36 +0200 |
parents | 9aa75a74614c |
children | 4a64b733dc76 |
comparison
equal
deleted
inserted
replaced
110:9aa75a74614c | 111:6da2a7ee2a86 |
---|---|
73 | 73 |
74 \begin{itemize} | 74 \begin{itemize} |
75 \item Stack grows down | 75 \item Stack grows down |
76 \item Stack parameter order: right-to-left | 76 \item Stack parameter order: right-to-left |
77 \item Caller cleans up the stack | 77 \item Caller cleans up the stack |
78 \item Stack always aligned to 8 bytes | |
79 \item first 8 integers (<= 32bit) are passed in registers \$a0-\$a7 | 78 \item first 8 integers (<= 32bit) are passed in registers \$a0-\$a7 |
80 \item first 8 single precision floating point arguments are passed in registers \$f12-\$f19 | 79 \item first 8 single precision floating point arguments are passed in registers \$f12-\$f19 |
81 \item if either integer or float registers are used up, the stack is used | 80 \item if either integer or float registers are used up, the stack is used |
81 \item 64-bit stack arguments are always aligned to 8 bytes | |
82 \item 64-bit integers or double precision floats are passed on two general purpose registers starting at an even register number, skipping one odd register | 82 \item 64-bit integers or double precision floats are passed on two general purpose registers starting at an even register number, skipping one odd register |
83 \item \$a0-\$a7 and \$f12-\$f19 are not required to be preserved | 83 \item \$a0-\$a7 and \$f12-\$f19 are not required to be preserved |
84 \item results are returned in \$v0 (32-bit), \$v0 and \$v1 (64-bit), \$f0 or \$f0 and \$f2 (2 $\times$ 32 bit float e.g. complex) | 84 \item results are returned in \$v0 (32-bit), \$v0 and \$v1 (64-bit), \$f0 or \$f0 and \$f2 (2 $\times$ 32 bit float e.g. complex) |
85 \end{itemize} | 85 \end{itemize} |
86 | 86 |