[AArch64][3/6] DWARF unwinder support for signed return address

Jiong Wang jiong.wang@foss.arm.com
Thu Aug 10 13:35:00 GMT 2017


On 10/08/17 12:08, Pedro Alves wrote:
> On 08/09/2017 01:17 PM, Jiong Wang wrote:
>> +
>> +  /* Only DW_CFA_GNU_window_save is expected on AArch64.  */
>> +  if (op != DW_CFA_GNU_window_save)
>> +    return false;
>> +
> Was there any progress in giving this an Aarch64-specific name
> to avoid confusion?  FYI, I was confused by this again for a couple
> minutes when I read it, until I remembered the previous discussions.

Hi Pedro,

   Yes, We can add DW_CFA_AARCH64_negate_ra_state to dwarf2.def, with the same
   number of DW_CFA_GNU_window_save, then need to introduce a new DW_CFA_DUP
   to avoid duplicated case value trouble when auto-generate switch/case for
   returning CFA name.  Will post patch to GCC then can be synced to binutils-gdb
   onced approved.

>
>> +/* Implement the execute_dwarf_cfa_vendor_op method.  */
>> +
>> +static bool
>> +aarch64_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op,
>> +				     struct dwarf2_frame_state *fs)
>> +{
>> +  struct dwarf2_frame_state_reg *ra_state_column;
>> +  static unsigned char exp_0 = 0x30; /* DW_OP_lit0.  */
>> +  static unsigned char exp_1 = 0x31; /* DW_OP_lit1.  */
> Can these be static const?  (likewise elsewhere in the patch.)
>
> Also, gdb_byte.

Will fix in the next update.


Thanks.

Regards,
Jiong



More information about the Gdb-patches mailing list