[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <8F8D535F-3637-4BC7-8853-B709EC5D14C9@jrtc27.com>
Date: Wed, 19 Jan 2022 20:48:48 +0000
From: Jessica Clarke <jrtc27@...c27.com>
To: Andreas Schwab <schwab@...ux-m68k.org>
Cc: Changbin Du <changbin.du@...il.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
linux-riscv <linux-riscv@...ts.infradead.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] riscv: eliminate unreliable __builtin_frame_address(1)
On 19 Jan 2022, at 20:44, Andreas Schwab <schwab@...ux-m68k.org> wrote:
>
> On Jan 19 2022, Jessica Clarke wrote:
>
>> Leaf functions by definition don’t have callees that are trying to read
>> their frame pointer so aren’t relevant here.
>
> ??? __builtin_frame_address(1) is about the caller, not the callee.
My point is that the only thing that can possibly read the incoming
frame pointer of a leaf function is the leaf function itself, and since
it knows where it’s putting it then there is no ABI issue, it just
remembers where it put it and loads it from there. The issue of whether
it’s part of the ABI or not only arises when you’re trying to read the
incoming frame pointer from a caller, which by definition is not a leaf
function.
Jess
Powered by blists - more mailing lists