[binutils-gdb] LoongArch: Change DWARF2_CIE_DATA_ALIGNMENT to -4 for loongarch32
liu zhensong
liuzhensong@sourceware.org
Wed Dec 10 08:07:55 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=80cd86db552e7f0930dc8d35258209c6d0ae6268
commit 80cd86db552e7f0930dc8d35258209c6d0ae6268
Author: Jiajie Chen <c@jia.je>
Date: Mon Dec 16 15:27:36 2024 +0800
LoongArch: Change DWARF2_CIE_DATA_ALIGNMENT to -4 for loongarch32
Diff:
---
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 \
More information about the Binutils-cvs
mailing list