[PATCH v5 4/4] gas: sframe: Represent .cfi_undefined RA as FRE without offsets
Indu Bhagat
indu.bhagat@oracle.com
Mon Sep 1 22:36:13 GMT 2025
On 7/30/25 1:30 AM, Indu wrote:
>> @@ -555,6 +558,7 @@ output_sframe_row_entry (symbolS *fde_start_addr,
>> unsigned int fre_num_offsets;
>> unsigned int fre_offset_size;
>> unsigned int fre_base_reg;
>> + bool fre_mangled_ra_p;
>> expressionS exp;
>> unsigned int fre_addr_size;
>> @@ -580,14 +584,30 @@ output_sframe_row_entry (symbolS *fde_start_addr,
>> #endif
>> /* Create the fre_info using the CFA base register, number of
>> offsets and max
>> - size of offset in this frame row entry. */
>> - fre_base_reg = get_fre_base_reg_id (sframe_fre);
>> - fre_num_offsets = get_fre_num_offsets (sframe_fre);
>> - fre_offset_size = sframe_get_fre_offset_size (sframe_fre);
>> + size of offset in this frame row entry. Represent RA undefined
>> as FRE
>> + without any offsets and all FRE info word fields zeroed. */
>> + if (sframe_fre->ra_undefined_p)
>> + {
>> + fre_base_reg = 0;
>> + fre_num_offsets = 0;
>> + fre_offset_size = 0;
>> + fre_mangled_ra_p = 0;
>> + }
>> + else
>> + {
>> + fre_base_reg = get_fre_base_reg_id (sframe_fre);
>> + fre_num_offsets = get_fre_num_offsets (sframe_fre);
>> + fre_offset_size = sframe_get_fre_offset_size (sframe_fre);
>> + fre_mangled_ra_p = sframe_fre->mangled_ra_p;
>> + }
>> fre_info = sframe_set_fre_info (fre_base_reg, fre_num_offsets,
>> - fre_offset_size, sframe_fre->mangled_ra_p);
>> + fre_offset_size, fre_mangled_ra_p);
>
> Perhaps this can be avoided by reseting as necessary in
> sframe_xlate_do_cfi_undefined?
Hi Jens,
In light of our ongoing discussion on the V4 thread of this series, this
specific comment can be disregarded.
Thanks
Indu
More information about the Binutils
mailing list