1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU Assembler "as". 4 5Copyright (C) 1991-2021 Free Software Foundation, Inc. 6 7Permission is granted to copy, distribute and/or modify this document 8under the terms of the GNU Free Documentation License, Version 1.3 9or any later version published by the Free Software Foundation; 10with no Invariant Sections, with no Front-Cover Texts, and with no 11Back-Cover Texts. A copy of the license is included in the 12section entitled "GNU Free Documentation License". 13 --> 14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 15<head> 16<title>Using as: MIPS ISA</title> 17 18<meta name="description" content="Using as: MIPS ISA"> 19<meta name="keywords" content="Using as: MIPS ISA"> 20<meta name="resource-type" content="document"> 21<meta name="distribution" content="global"> 22<meta name="Generator" content="makeinfo"> 23<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 24<link href="index.html#Top" rel="start" title="Top"> 25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index"> 26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 27<link href="MIPS_002dDependent.html#MIPS_002dDependent" rel="up" title="MIPS-Dependent"> 28<link href="MIPS-assembly-options.html#MIPS-assembly-options" rel="next" title="MIPS assembly options"> 29<link href="MIPS-Small-Data.html#MIPS-Small-Data" rel="previous" title="MIPS Small Data"> 30<style type="text/css"> 31<!-- 32a.summary-letter {text-decoration: none} 33blockquote.smallquotation {font-size: smaller} 34div.display {margin-left: 3.2em} 35div.example {margin-left: 3.2em} 36div.indentedblock {margin-left: 3.2em} 37div.lisp {margin-left: 3.2em} 38div.smalldisplay {margin-left: 3.2em} 39div.smallexample {margin-left: 3.2em} 40div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 41div.smalllisp {margin-left: 3.2em} 42kbd {font-style:oblique} 43pre.display {font-family: inherit} 44pre.format {font-family: inherit} 45pre.menu-comment {font-family: serif} 46pre.menu-preformatted {font-family: serif} 47pre.smalldisplay {font-family: inherit; font-size: smaller} 48pre.smallexample {font-size: smaller} 49pre.smallformat {font-family: inherit; font-size: smaller} 50pre.smalllisp {font-size: smaller} 51span.nocodebreak {white-space:nowrap} 52span.nolinebreak {white-space:nowrap} 53span.roman {font-family:serif; font-weight:normal} 54span.sansserif {font-family:sans-serif; font-weight:normal} 55ul.no-bullet {list-style: none} 56--> 57</style> 58 59 60</head> 61 62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 63<a name="MIPS-ISA"></a> 64<div class="header"> 65<p> 66Next: <a href="MIPS-assembly-options.html#MIPS-assembly-options" accesskey="n" rel="next">MIPS assembly options</a>, Previous: <a href="MIPS-Small-Data.html#MIPS-Small-Data" accesskey="p" rel="previous">MIPS Small Data</a>, Up: <a href="MIPS_002dDependent.html#MIPS_002dDependent" accesskey="u" rel="up">MIPS-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 67</div> 68<hr> 69<a name="Directives-to-override-the-ISA-level"></a> 70<h4 class="subsection">9.27.5 Directives to override the ISA level</h4> 71 72<a name="index-MIPS-ISA-override"></a> 73<a name="index-_002eset-mipsn"></a> 74<p><small>GNU</small> <code>as</code> supports an additional directive to change 75the MIPS Instruction Set Architecture level on the fly: <code>.set 76mips<var>n</var></code>. <var>n</var> should be a number from 0 to 5, or 32, 32r2, 32r3, 7732r5, 32r6, 64, 64r2, 64r3, 64r5 or 64r6. 78The values other than 0 make the assembler accept instructions 79for the corresponding ISA level, from that point on in the 80assembly. <code>.set mips<var>n</var></code> affects not only which instructions 81are permitted, but also how certain macros are expanded. <code>.set 82mips0</code> restores the ISA level to its original level: either the 83level you selected with command-line options, or the default for your 84configuration. You can use this feature to permit specific MIPS III 85instructions while assembling in 32 bit mode. Use this directive with 86care! 87</p> 88<a name="index-MIPS-CPU-override"></a> 89<a name="index-_002eset-arch_003dcpu"></a> 90<p>The <code>.set arch=<var>cpu</var></code> directive provides even finer control. 91It changes the effective CPU target and allows the assembler to use 92instructions specific to a particular CPU. All CPUs supported by the 93‘<samp>-march</samp>’ command-line option are also selectable by this directive. 94The original value is restored by <code>.set arch=default</code>. 95</p> 96<p>The directive <code>.set mips16</code> puts the assembler into MIPS 16 mode, 97in which it will assemble instructions for the MIPS 16 processor. Use 98<code>.set nomips16</code> to return to normal 32 bit mode. 99</p> 100<p>Traditional MIPS assemblers do not support this directive. 101</p> 102<p>The directive <code>.set micromips</code> puts the assembler into microMIPS mode, 103in which it will assemble instructions for the microMIPS processor. Use 104<code>.set nomicromips</code> to return to normal 32 bit mode. 105</p> 106<p>Traditional MIPS assemblers do not support this directive. 107</p> 108<hr> 109<div class="header"> 110<p> 111Next: <a href="MIPS-assembly-options.html#MIPS-assembly-options" accesskey="n" rel="next">MIPS assembly options</a>, Previous: <a href="MIPS-Small-Data.html#MIPS-Small-Data" accesskey="p" rel="previous">MIPS Small Data</a>, Up: <a href="MIPS_002dDependent.html#MIPS_002dDependent" accesskey="u" rel="up">MIPS-Dependent</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 112</div> 113 114 115 116</body> 117</html> 118