changeset 660:17dff20b9c10

- clarified/fixed riscv64 callconv doc
author Tassilo Philipp
date Tue, 12 Mar 2024 23:32:12 +0100
parents b8969b7b4876
children 93ce63d72d59
files doc/manual/callconvs/callconv_riscv64.tex
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/doc/manual/callconvs/callconv_riscv64.tex	Tue Mar 12 23:12:15 2024 +0100
+++ b/doc/manual/callconvs/callconv_riscv64.tex	Tue Mar 12 23:32:12 2024 +0100
@@ -79,8 +79,7 @@
 \item stack parameter order: right-to-left
 \item caller cleans up the stack
 \item stack grows down
-\item first 8 integer arguments are passed using x10-x17/a0-a7
-\item first 8 floating point arguments are passed using f10-f17/fa0-fa7
+\item up to 16 arguments \textless=\ 8 bytes are passed using x10-x17/a0-a7 and f10-f17/fa0-fa7, with floating point arguments using float registers until those are exhausted
 \item 128 bit arguments passed via registers are passed in even-odd register pairs (skipping a register, if necessary, which remains unused)
 \item aggregates (struct, union) \textless=\ 16 bytes in size are passed via registers (but only in float registers if members are either one or two floating point non-union and non-array members)
 \item arguments \textgreater 128 bits are passed as a pointer to the argument (to a copy, if needed)