[PATCH v2] LoongArch: gas: Adjust DWARF CIE alignment factors
mengqinggang
mengqinggang@loongson.cn
Tue May 7 02:14:17 GMT 2024
在 2024/5/7 上午9:46, Jinyang He 写道:
> On 2024-05-06 17:23, mengqinggang wrote:
>
>> Set DWARF2_CIE_DATA_ALIGNMENT (data alignment factors) to -8.
>> It helps to save space.
>>
>> Data Alignment Factor
>> A signed LEB128 encoded value that is factored out of all offset
>> instructions that are associated with this CIE or its FDEs. This value
>> shall be multiplied by the register offset argument of an offset
>> instruction to obtain the new offset value.
>> ---
>> gas/config/tc-loongarch.h | 14 +++++++++-----
>> 1 file changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/gas/config/tc-loongarch.h b/gas/config/tc-loongarch.h
>> index e0d0962e5f0..8b6fee0ac23 100644
>> --- a/gas/config/tc-loongarch.h
>> +++ b/gas/config/tc-loongarch.h
>> @@ -101,15 +101,19 @@ extern bool loongarch_frag_align_code (int, int);
>> #define TC_FORCE_RELOCATION_LOCAL(FIX) 1
>> -/* Adjust debug_line after relaxation. */
>> -#define DWARF2_USE_FIXED_ADVANCE_PC 1
>> -
>> /* Values passed to md_apply_fix don't include symbol values. */
>> #define MD_APPLY_SYM_VALUE(FIX) 0
>> #define TARGET_USE_CFIPOP 1
>> -#define DWARF2_DEFAULT_RETURN_COLUMN 1 /* $ra. */
>> -#define DWARF2_CIE_DATA_ALIGNMENT -4
>> +/* Adjust debug_line after relaxation. */
>> +#define DWARF2_USE_FIXED_ADVANCE_PC 1
>> +
>> +/* FDE Data Alignment Factor.
>> + FDE Code Alignment Factor (DWARF2_LINE_MIN_INSN_LENGTH) should be 1
>> + because DW_CFA_advance_loc need to be relocated in bytes
>> + when linker relaxation. */
>> +#define DWARF2_CIE_DATA_ALIGNMENT (-8)
>
> Should be (-4) for loongarch32?
>
Yeah.
>
>> +#define DWARF2_DEFAULT_RETURN_COLUMN 1 /* FDE Return Address
>> Register. */
>> #define tc_cfi_frame_initial_instructions \
>> loongarch_cfi_frame_initial_instructions
More information about the Binutils
mailing list