On Tue, Feb 16, 2021 at 6:21 AM Christian Convey
<
christia...@gmail.com> wrote:
>
> I think adding some clarification makes sense. The current wording caused me some confusion as well.
>
> On Tue, Feb 16, 2021 at 8:53 AM Lukas Diekmann <
lukas.d...@gmail.com> wrote:
>>
>> Hello,
>>
>> I would like to propose a change to the documentation discussion stack frames,
>> as I found the following paragraph slightly confusing:
>>
>> > The end of the input argument area shall be aligned on a 16 byte boundary. In
>> > other words, the value (%rsp+ 8) is always a multiple of 16 when control is
>> > transferred to the function entry point.
>>
>> I believe the crucial part is "when control is transferred" which can be
>> interpreted as both before and after the call instruction was executed. To make
>> things a little clearer, I would like to propose to change this paragraph as
>> follows:
>>
>> > The end of the input argument area shall be aligned on a 16-byte boundary. In
>> > other words, the stack needs to be 16-byte aligned immediately before the call
>> > instruction is executed. Once control has been transferred to the function
>> > entry point, i.e. immediately after the return value has been pushed, %rsp
>> > points to the return address, and the value of (%rsp+8) is a multiple of 16.
>>
>> I'd be happy to raise a PR for this.
>>