RFR: 8266749: AArch64: Backtracing broken on PAC enabled systems [v6]
Andrew Haley
aph at openjdk.java.net
Wed Jun 2 15:55:37 UTC 2021
On Wed, 2 Jun 2021 14:46:26 GMT, Alan Hayward <github.com+4146708+a74nh at openjdk.org> wrote:
>> Ah, yes, because the name pauth_ptr_is_raw() now clashes with sender_pc_raw().
>>
>> I'll fix up, one way or the other. Don't really want to call it pauth_ptr_is_unsigned() or pauth_ptr_is_authenticated(), because they seem to imply different things at first glance.
>
> raw is generally accepted as the correct name for a pointer that has not been signed (or has been authenticated/stripped).
> For example see: https://github.com/apple/llvm-project/blob/a63a81bd9911f87a0b5dcd5bdd7ccdda7124af87/clang/docs/PointerAuthentication.rst#basic-concepts
>
> So, pauth_ptr_is_raw() is the correct name.
>
> But, now what to rename sender_pc_raw() to ? :)
> The PAC coder would say:
> inline address frame::sender_pc() const { return *sender_pc_addr(); }
> inline address frame::sender_pc_authenticated() const { return pauth_strip_pointer(sender_pc()); }
> But that's not right here for a common interface.
>
> How about:
> inline address frame::stored_sender_pc() const { return *sender_pc_addr(); }
> inline address frame::sender_pc() const { return pauth_strip_pointer(stored_sender_pc()); }
Off the top of my head, I would have thought that it makes the most sense to use Arm's terminology, which is "signed pointer". So, that'd be `frame::signed_sender_pc()` or `frame::maybe_signed_sender_pc()`.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4029
More information about the hotspot-dev
mailing list