as: MIPS ISA

 
 9.26.5 Directives to override the ISA level
 -------------------------------------------
 
 GNU 'as' supports an additional directive to change the MIPS Instruction
 Set Architecture level on the fly: '.set mipsN'.  N should be a number
 from 0 to 5, or 32, 32r2, 32r3, 32r5, 32r6, 64, 64r2, 64r3, 64r5 or
 64r6.  The values other than 0 make the assembler accept instructions
 for the corresponding ISA level, from that point on in the assembly.
 '.set mipsN' affects not only which instructions are permitted, but also
 how certain macros are expanded.  '.set mips0' restores the ISA level to
 its original level: either the level you selected with command-line
 options, or the default for your configuration.  You can use this
 feature to permit specific MIPS III instructions while assembling in 32
 bit mode.  Use this directive with care!
 
    The '.set arch=CPU' directive provides even finer control.  It
 changes the effective CPU target and allows the assembler to use
 instructions specific to a particular CPU. All CPUs supported by the
 '-march' command-line option are also selectable by this directive.  The
 original value is restored by '.set arch=default'.
 
    The directive '.set mips16' puts the assembler into MIPS 16 mode, in
 which it will assemble instructions for the MIPS 16 processor.  Use
 '.set nomips16' to return to normal 32 bit mode.
 
    Traditional MIPS assemblers do not support this directive.
 
    The directive '.set micromips' puts the assembler into microMIPS
 mode, in which it will assemble instructions for the microMIPS
 processor.  Use '.set nomicromips' to return to normal 32 bit mode.
 
    Traditional MIPS assemblers do not support this directive.