[PATCH v1 3/4] aarch64 DWARF: add new CFI directive for PAuth_LR
Matthieu Longo
matthieu.longo@arm.com
Tue Dec 10 14:52:59 GMT 2024
On 2024-11-26 07:22, Jan Beulich wrote:
> On 25.11.2024 18:33, Matthieu Longo wrote:
>> On 2024-11-25 16:40, Jan Beulich wrote:
>>> On 25.11.2024 17:28, Matthieu Longo wrote:
>>>> --- a/include/dwarf2.def
>>>> +++ b/include/dwarf2.def
>>>> @@ -788,9 +788,11 @@ DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
>>>> /* GNU extensions.
>>>> NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */
>>>> DW_CFA (DW_CFA_GNU_window_save, 0x2d)
>>>> -DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
>>>> DW_CFA (DW_CFA_GNU_args_size, 0x2e)
>>>> DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
>>>> +/* AArch64 extensions. */
>>>> +DW_CFA (DW_CFA_AARCH64_negate_ra_state_with_pc, 0x2c)
>>>> +DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
>>>
>>> While I understand an important aspect here is to stay in sync with the
>>> gcc incarnation of this file, I don't think it's a good idea to re-order
>>> things. Instead 0x2c should go further up, such that all of these entries
>>> remain numerically sorted. Only then will the 2nd line of the comment
>>> actually remain directly next to _both_ values it applies to.
>>>
>>> Jan
>>
>> The numeric sorting does not seem to be always respected when it makes
>> sense to group the entries.
>> For instance, line 783, a few line above:
>>
>> DW_CFA (DW_CFA_lo_user, 0x1c)
>> DW_CFA (DW_CFA_hi_user, 0x3f)
>>
>> I can do as you proposed, I could move the AArch64 extensions between
>> the SGI/MIPS entries and GNU ones.
>> Something like:
>>
>> /* SGI/MIPS specific. */
>> DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
>> /* AArch64 extensions. */
>> DW_CFA (DW_CFA_AARCH64_negate_ra_state_with_pc, 0x2c)
>> DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
>> /* GNU extensions.
>> NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */
>> DW_CFA (DW_CFA_GNU_window_save, 0x2d)
>> DW_CFA (DW_CFA_GNU_args_size, 0x2e)
>>
>> Do you think it looks better ?
>
> Not necessarily, plus it would get worse when more extensions are added
> like this.
>
> /* SGI/MIPS specific. */
> DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
> /* AArch64 specific. */
> DW_CFA (DW_CFA_AARCH64_negate_ra_state_with_pc, 0x2c)
> /* GNU extensions.
> NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */
> DW_CFA (DW_CFA_GNU_window_save, 0x2d)
> DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
> DW_CFA (DW_CFA_GNU_args_size, 0x2e)
>
> IOW personally I consider it particularly relevant that the DW_CFA_DUP()
> stay immediately next to (after) its corresponding DW_CFA().
>
> Jan
Fixed in the next revision.
Matthieu
More information about the Binutils
mailing list