[MIPS/GAS] Add Loongson EXT2 Instructions support.

bfd/
	* elfxx-mips.c (print_mips_ases): Add Loongson EXT2 extension.

binutils/
	* readelf.c (print_mips_ases): Add Loongson EXT2 extension.

gas/
	* NEWS: Mention Loongson EXTensions R2 (EXT2) support.
	* config/tc-mips.c (options): Add OPTION_LOONGSON_EXT2 and
	OPTION_NO_LOONGSON_EXT2.
	(md_longopts): Likewise.
	(mips_ases): Define availability for EXT.
	(mips_convert_ase_flags): Map ASE_LOONGSON_EXT2 to
	AFL_ASE_LOONGSON_EXT2.
	(md_show_usage): Add help for -mloongson-ext2 and
	-mno-loongson-ext2.
	* doc/as.texi: Document -mloongson-ext2, -mno-loongson-ext2.
	* doc/c-mips.texi: Document -mloongson-ext2, -mno-loongson-ext2,
	.set loongson-ext2 and .set noloongson-ext2.
	* testsuite/gas/mips/loongson-ext2.d: New test.
	* testsuite/gas/mips/loongson-ext2.s: New test.
	* testsuite/gas/mips/mips.exp: Run loongson-ext2 test.

include/
	* elf/mips.h (AFL_ASE_LOONGSON_EXT2): New macro.
	(AFL_ASE_MASK): Update to include AFL_ASE_LOONGSON_EXT2.
	* opcode/mips.h (ASE_LOONGSON_EXT2): New macro.

opcodes/
	* mips-dis.c (parse_mips_ase_option): Handle -M loongson-ext
	option.
	(print_mips_disassembler_options): Document -M loongson-ext.
	* mips-opc.c (LEXT2): New macro.
	(mips_opcodes): Add cto, ctz, dcto, dctz instructions.
This commit is contained in:
Chenghua Xu
2018-08-29 20:08:58 +08:00
parent bdc6c06e3b
commit a693765e23
18 changed files with 144 additions and 2 deletions

View File

@@ -947,6 +947,13 @@ parse_mips_ase_option (const char *option)
mips_ase |= ASE_LOONGSON_CAM;
return TRUE;
}
/* Put here for match ext2 frist */
if (CONST_STRNEQ (option, "loongson-ext2"))
{
mips_ase |= ASE_LOONGSON_EXT2;
return TRUE;
}
if (CONST_STRNEQ (option, "loongson-ext"))
{
@@ -2613,6 +2620,10 @@ static struct
N_("Recognize the Loongson EXTensions (EXT) "
" instructions.\n"),
MIPS_OPTION_ARG_NONE },
{ "loongson-ext2",
N_("Recognize the Loongson EXTensions R2 (EXT2) "
" instructions.\n"),
MIPS_OPTION_ARG_NONE },
{ "gpr-names=", N_("Print GPR names according to specified ABI.\n\
Default: based on binary being disassembled.\n"),
MIPS_OPTION_ARG_ABI },