From dec0624dcd4590d55fad203497fcdcef4ce292e3 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Tue, 9 Aug 2011 15:20:03 +0000 Subject: gas/ * config/tc-mips.c (mips_set_options): Add ase_mcu. (mips_opts): Initialise ase_mcu to -1. (ISA_SUPPORTS_MCU_ASE): New macro. (MIPS_CPU_ASE_MCU): Likewise. (is_opcode_valid): Handle MCU. (macro_build, macro): Likewise. (validate_mips_insn, validate_micromips_insn): Likewise. (mips_ip): Likewise. (options): Add OPTION_MCU and OPTION_NO_MCU. (md_longopts): Add mmcu and mno-mcu. (md_parse_option): Handle OPTION_MCU and OPTION_NO_MCU. (mips_after_parse_args): Handle MCU. (s_mipsset): Likewise. (md_show_usage): Handle MCU options. * doc/as.texinfo: Document -mmcu and -mno-mcu options. * doc/c-mips.texi: Likewise, and document ".set mcu" and ".set nomcu" directives. gas/testsuite/ * gas/mips/micromips@mcu.d: New test. * gas/mips/mcu.d: Likewise. * gas/mips/mcu.s: New test source. * gas/mips/mips.exp: Run the new tests. include/opcode/ * mips.h (OP_MASK_3BITPOS, OP_SH_3BITPOS): New macros. (OP_MASK_OFFSET12, OP_SH_OFFSET12): Redefine. (INSN_ASE_MASK): Add the MCU bit. (INSN_MCU): New macro. (M_ACLR_AB, M_ACLR_OB, M_ASET_AB, M_ASET_OB): New enum values. (MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): New macros. opcodes/ * mips-dis.c (mips_arch_choices): Enable MCU for "mips32r2" and "mips64r2". (print_insn_args, print_insn_micromips): Handle MCU. * micromips-opc.c (MC): New macro. (micromips_opcodes): Add "aclr", "aset" and "iret". * mips-opc.c (MC): New macro. (mips_builtin_opcodes): Add "aclr", "aset" and "iret". --- gas/doc/as.texinfo | 7 +++++++ gas/doc/c-mips.texi | 14 ++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'gas/doc') diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index a2be539..069efa0 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -401,6 +401,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{-mdsp}] [@b{-mno-dsp}] [@b{-mdspr2}] [@b{-mno-dspr2}] [@b{-mmt}] [@b{-mno-mt}] + [@b{-mmcu}] [@b{-mno-mcu}] [@b{-mfix7000}] [@b{-mno-fix7000}] [@b{-mfix-vr4120}] [@b{-mno-fix-vr4120}] [@b{-mfix-vr4130}] [@b{-mno-fix-vr4130}] @@ -1223,6 +1224,12 @@ Generate code for the MT Application Specific Extension. This tells the assembler to accept MT instructions. @samp{-mno-mt} turns off this option. +@item -mmcu +@itemx -mno-mcu +Generate code for the MCU Application Specific Extension. +This tells the assembler to accept MCU instructions. +@samp{-mno-mcu} turns off this option. + @item --construct-floats @itemx --no-construct-floats The @samp{--no-construct-floats} option disables the construction of diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi index b6e2ae6..28f31d0 100644 --- a/gas/doc/c-mips.texi +++ b/gas/doc/c-mips.texi @@ -175,6 +175,12 @@ Generate code for the MT Application Specific Extension. This tells the assembler to accept MT instructions. @samp{-mno-mt} turns off this option. +@item -mmcu +@itemx -mno-mcu +Generate code for the MCU Application Specific Extension. +This tells the assembler to accept MCU instructions. +@samp{-mno-mcu} turns off this option. + @item -mfix7000 @itemx -mno-fix7000 Cause nops to be inserted if the read of the destination register @@ -662,6 +668,14 @@ from the MT Application Specific Extension from that point on in the assembly. The @code{.set nomt} directive prevents MT instructions from being accepted. +@cindex MIPS MCU instruction generation override +@kindex @code{.set mcu} +@kindex @code{.set nomcu} +The directive @code{.set mcu} makes the assembler accept instructions +from the MCU Application Specific Extension from that point on +in the assembly. The @code{.set nomcu} directive prevents MCU +instructions from being accepted. + Traditional @sc{mips} assemblers do not support these directives. @node MIPS floating-point -- cgit v1.1