https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89545
--- Comment #7 from Michael Matz <matz at gcc dot gnu.org> --- What about this variant of the second part? diff --git a/x86-64-ABI/low-level-sys-info.tex b/x86-64-ABI/low-level-sys-info.tex index 66270b9..93b5e95 100644 --- a/x86-64-ABI/low-level-sys-info.tex +++ b/x86-64-ABI/low-level-sys-info.tex @@ -517,7 +517,9 @@ Once arguments are classified, the registers get assigned (in left-to-right order) for passing as follows: \begin{enumerate} -\item If the class is MEMORY, pass the argument on the stack. +\item If the class is MEMORY, pass the argument on the stack at an + address respecting the arguments alignment (which might be more + than its natural alignement). \item If the class is INTEGER, the next available register of the sequence \RDI, \RSI, \RDX, \RCX, \reg{r8} and \reg{r9} is