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.
This commit is contained in:
mengqinggang
2022-12-01 16:01:27 +08:00
committed by liuzhensong
parent 1b6fccd28d
commit 7ad9de1188
2 changed files with 7 additions and 4 deletions

View File

@@ -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;

View File

@@ -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)