From 80cd86db552e7f0930dc8d35258209c6d0ae6268 Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Mon, 16 Dec 2024 15:27:36 +0800 Subject: [PATCH] LoongArch: Change DWARF2_CIE_DATA_ALIGNMENT to -4 for loongarch32 --- gas/config/tc-loongarch.c | 5 +++++ gas/config/tc-loongarch.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c index df5cf9d903c..2c53771a839 100644 --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -118,6 +118,9 @@ static const char default_arch[] = DEFAULT_ARCH; static bool call36 = 0; +/* The dwarf2 data alignment, adjusted for 32 or 64 bit. */ +int loongarch_cie_data_alignment; + /* The lowest 4-bit is the bytes of instructions. */ #define RELAX_BRANCH_16 0xc0000014 #define RELAX_BRANCH_21 0xc0000024 @@ -515,6 +518,8 @@ md_begin () /* FIXME: expressionS use 'offsetT' as constant, * we want this is 64-bit type. */ assert (8 <= sizeof (offsetT)); + + loongarch_cie_data_alignment = LARCH_opts.ase_lp64 ? (-8) : (-4); } /* Called just before the assembler exits. */ diff --git a/gas/config/tc-loongarch.h b/gas/config/tc-loongarch.h index 38ecd036d34..a2444aae0d1 100644 --- a/gas/config/tc-loongarch.h +++ b/gas/config/tc-loongarch.h @@ -108,7 +108,8 @@ extern bool loongarch_force_relocation_sub_same(struct fix *, asection *); 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) +extern int loongarch_cie_data_alignment; +#define DWARF2_CIE_DATA_ALIGNMENT loongarch_cie_data_alignment #define DWARF2_DEFAULT_RETURN_COLUMN 1 /* FDE Return Address Register. */ #define tc_cfi_frame_initial_instructions \ -- 2.47.3