LoongArch: include: Add support for linker relaxation.

Add relocs and gas LARCH_opts.relax option.

include/ChangeLog:

	* elf/loongarch.h: Add relocs.
	* opcode/loongarch.h: Add LARCH_opts.relax and macro LARCH_NOP.
This commit is contained in:
mengqinggang 2022-12-01 14:34:10 +08:00 committed by liuzhensong
parent 7b9e7db083
commit 57a930e3bf
2 changed files with 23 additions and 0 deletions

View File

@ -229,6 +229,26 @@ RELOC_NUMBER (R_LARCH_32_PCREL, 99)
/* RELAX. */
RELOC_NUMBER (R_LARCH_RELAX, 100)
/* relax delete. */
RELOC_NUMBER (R_LARCH_DELETE, 101)
/* relax align. */
RELOC_NUMBER (R_LARCH_ALIGN, 102)
/* pcaddi. */
RELOC_NUMBER (R_LARCH_PCREL20_S2, 103)
/* cfa. */
RELOC_NUMBER (R_LARCH_CFA, 104)
/* DW_CFA_advance_loc. */
RELOC_NUMBER (R_LARCH_ADD6, 105)
RELOC_NUMBER (R_LARCH_SUB6, 106)
/* unsigned leb128. */
RELOC_NUMBER (R_LARCH_ADD_ULEB128, 107)
RELOC_NUMBER (R_LARCH_SUB_ULEB128, 108)
END_RELOC_NUMBERS (R_LARCH_count)
/* Processor specific flags for the ELF header e_flags field. */

View File

@ -28,6 +28,8 @@ extern "C"
{
#endif
#define LARCH_NOP 0x03400000
typedef uint32_t insn_t;
struct loongarch_opcode
@ -228,6 +230,7 @@ dec2 : [1-9][0-9]?
#define ase_gpcr isa.use_la_global_with_pcrel
#define ase_gabs isa.use_la_global_with_abs
int relax;
} LARCH_opts;
extern size_t loongarch_insn_length (insn_t insn);