aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormengqinggang <mengqinggang@loongson.cn>2022-12-01 16:01:27 +0800
committerliuzhensong <liuzhensong@loongson.cn>2023-05-30 19:56:43 +0800
commit7ad9de1188609dee11a5c196869fca62da8154a3 (patch)
tree82dd3ab9dc7cc1f94429389d0942722993a99ec5
parent1b6fccd28db14fffe75ff6755307047ef932c81e (diff)
downloadbinutils-7ad9de1188609dee11a5c196869fca62da8154a3.zip
binutils-7ad9de1188609dee11a5c196869fca62da8154a3.tar.gz
binutils-7ad9de1188609dee11a5c196869fca62da8154a3.tar.bz2
LoongArch: opcodes: Add support for linker relaxation.
Set gas default to enable relax. opcodes/ChangeLog: * loongarch-opc.c (struct loongarch_ASEs_option): New member relax with the default value 1.
-rw-r--r--bfd/elfnn-loongarch.c6
-rw-r--r--opcodes/loongarch-opc.c5
2 files changed, 7 insertions, 4 deletions
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index d501991..b16066c 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -3698,7 +3698,7 @@ loongarch_relax_delete_bytes (bfd *abfd,
/* Relax pcalau12i,addi.d => pcaddi. */
static bool
-loongarch_relax_pcala_addi(bfd *abfd, asection *sec,
+loongarch_relax_pcala_addi (bfd *abfd, asection *sec,
Elf_Internal_Rela *rel_hi, bfd_vma symval)
{
bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
@@ -3967,7 +3967,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
{
if (i + 4 > sec->reloc_count)
break;
- loongarch_relax_pcala_addi(abfd, sec, rel, symval);
+ loongarch_relax_pcala_addi (abfd, sec, rel, symval);
}
break;
case R_LARCH_GOT_PC_HI20:
@@ -3977,7 +3977,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
break;
if (loongarch_relax_pcala_ld (abfd, sec, rel))
{
- loongarch_relax_pcala_addi(abfd, sec, rel, symval);
+ loongarch_relax_pcala_addi (abfd, sec, rel, symval);
}
}
break;
diff --git a/opcodes/loongarch-opc.c b/opcodes/loongarch-opc.c
index 39d724a..573b691 100644
--- a/opcodes/loongarch-opc.c
+++ b/opcodes/loongarch-opc.c
@@ -22,7 +22,10 @@
#include "opcode/loongarch.h"
#include "libiberty.h"
-struct loongarch_ASEs_option LARCH_opts;
+struct loongarch_ASEs_option LARCH_opts =
+{
+ .relax = 1
+};
size_t
loongarch_insn_length (insn_t insn ATTRIBUTE_UNUSED)