1<html lang="en"> 2<head> 3<title>RX Options - Using the GNU Compiler Collection (GCC)</title> 4<meta http-equiv="Content-Type" content="text/html"> 5<meta name="description" content="Using the GNU Compiler Collection (GCC)"> 6<meta name="generator" content="makeinfo 4.13"> 7<link title="Top" rel="start" href="index.html#Top"> 8<link rel="up" href="Submodel-Options.html#Submodel-Options" title="Submodel Options"> 9<link rel="prev" href="RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options" title="RS/6000 and PowerPC Options"> 10<link rel="next" href="S_002f390-and-zSeries-Options.html#S_002f390-and-zSeries-Options" title="S/390 and zSeries Options"> 11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 12<!-- 13Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 141998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 152010 Free Software Foundation, Inc. 16 17Permission is granted to copy, distribute and/or modify this document 18under the terms of the GNU Free Documentation License, Version 1.3 or 19any later version published by the Free Software Foundation; with the 20Invariant Sections being ``Funding Free Software'', the Front-Cover 21Texts being (a) (see below), and with the Back-Cover Texts being (b) 22(see below). A copy of the license is included in the section entitled 23``GNU Free Documentation License''. 24 25(a) The FSF's Front-Cover Text is: 26 27 A GNU Manual 28 29(b) The FSF's Back-Cover Text is: 30 31 You have freedom to copy and modify this GNU Manual, like GNU 32 software. Copies published by the Free Software Foundation raise 33 funds for GNU development.--> 34<meta http-equiv="Content-Style-Type" content="text/css"> 35<style type="text/css"><!-- 36 pre.display { font-family:inherit } 37 pre.format { font-family:inherit } 38 pre.smalldisplay { font-family:inherit; font-size:smaller } 39 pre.smallformat { font-family:inherit; font-size:smaller } 40 pre.smallexample { font-size:smaller } 41 pre.smalllisp { font-size:smaller } 42 span.sc { font-variant:small-caps } 43 span.roman { font-family:serif; font-weight:normal; } 44 span.sansserif { font-family:sans-serif; font-weight:normal; } 45--></style> 46<link rel="stylesheet" type="text/css" href="../cs.css"> 47</head> 48<body> 49<div class="node"> 50<a name="RX-Options"></a> 51<p> 52Next: <a rel="next" accesskey="n" href="S_002f390-and-zSeries-Options.html#S_002f390-and-zSeries-Options">S/390 and zSeries Options</a>, 53Previous: <a rel="previous" accesskey="p" href="RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options">RS/6000 and PowerPC Options</a>, 54Up: <a rel="up" accesskey="u" href="Submodel-Options.html#Submodel-Options">Submodel Options</a> 55<hr> 56</div> 57 58<h4 class="subsection">3.17.34 RX Options</h4> 59 60<p><a name="index-RX-Options-1952"></a> 61These command line options are defined for RX targets: 62 63 <dl> 64<dt><code>-m64bit-doubles</code><dt><code>-m32bit-doubles</code><dd><a name="index-m64bit_002ddoubles-1953"></a><a name="index-m32bit_002ddoubles-1954"></a>Make the <code>double</code> data type be 64-bits (<samp><span class="option">-m64bit-doubles</span></samp>) 65or 32-bits (<samp><span class="option">-m32bit-doubles</span></samp>) in size. The default is 66<samp><span class="option">-m32bit-doubles</span></samp>. <em>Note</em> RX floating point hardware only 67works on 32-bit values, which is why the default is 68<samp><span class="option">-m32bit-doubles</span></samp>. 69 70 <br><dt><code>-fpu</code><dt><code>-nofpu</code><dd><a name="index-fpu-1955"></a><a name="index-nofpu-1956"></a>Enables (<samp><span class="option">-fpu</span></samp>) or disables (<samp><span class="option">-nofpu</span></samp>) the use of RX 71floating point hardware. The default is enabled for the <var>RX600</var> 72series and disabled for the <var>RX200</var> series. 73 74 <p>Floating point instructions will only be generated for 32-bit floating 75point values however, so if the <samp><span class="option">-m64bit-doubles</span></samp> option is in 76use then the FPU hardware will not be used for doubles. 77 78 <p><em>Note</em> If the <samp><span class="option">-fpu</span></samp> option is enabled then 79<samp><span class="option">-funsafe-math-optimizations</span></samp> is also enabled automatically. 80This is because the RX FPU instructions are themselves unsafe. 81 82 <br><dt><code>-mcpu=</code><var>name</var><dd><a name="index-g_t_002dmcpu-1957"></a>Selects the type of RX CPU to be targeted. Currently three types are 83supported, the generic <var>RX600</var> and <var>RX200</var> series hardware and 84the specific <var>RX610</var> CPU. The default is <var>RX600</var>. 85 86 <p>The only difference between <var>RX600</var> and <var>RX610</var> is that the 87<var>RX610</var> does not support the <code>MVTIPL</code> instruction. 88 89 <p>The <var>RX200</var> series does not have a hardware floating point unit 90and so <samp><span class="option">-nofpu</span></samp> is enabled by default when this type is 91selected. 92 93 <br><dt><code>-mbig-endian-data</code><dt><code>-mlittle-endian-data</code><dd><a name="index-mbig_002dendian_002ddata-1958"></a><a name="index-mlittle_002dendian_002ddata-1959"></a>Store data (but not code) in the big-endian format. The default is 94<samp><span class="option">-mlittle-endian-data</span></samp>, i.e. to store data in the little endian 95format. 96 97 <br><dt><code>-msmall-data-limit=</code><var>N</var><dd><a name="index-msmall_002ddata_002dlimit-1960"></a>Specifies the maximum size in bytes of global and static variables 98which can be placed into the small data area. Using the small data 99area can lead to smaller and faster code, but the size of area is 100limited and it is up to the programmer to ensure that the area does 101not overflow. Also when the small data area is used one of the RX's 102registers (<code>r13</code>) is reserved for use pointing to this area, so 103it is no longer available for use by the compiler. This could result 104in slower and/or larger code if variables which once could have been 105held in <code>r13</code> are now pushed onto the stack. 106 107 <p>Note, common variables (variables which have not been initialised) and 108constants are not placed into the small data area as they are assigned 109to other sections in the output executable. 110 111 <p>The default value is zero, which disables this feature. Note, this 112feature is not enabled by default with higher optimization levels 113(<samp><span class="option">-O2</span></samp> etc) because of the potentially detrimental effects of 114reserving register <code>r13</code>. It is up to the programmer to 115experiment and discover whether this feature is of benefit to their 116program. 117 118 <br><dt><code>-msim</code><dt><code>-mno-sim</code><dd><a name="index-msim-1961"></a><a name="index-mno_002dsim-1962"></a>Use the simulator runtime. The default is to use the libgloss board 119specific runtime. 120 121 <br><dt><code>-mas100-syntax</code><dt><code>-mno-as100-syntax</code><dd><a name="index-mas100_002dsyntax-1963"></a><a name="index-mno_002das100_002dsyntax-1964"></a>When generating assembler output use a syntax that is compatible with 122Renesas's AS100 assembler. This syntax can also be handled by the GAS 123assembler but it has some restrictions so generating it is not the 124default option. 125 126 <br><dt><code>-mmax-constant-size=</code><var>N</var><dd><a name="index-mmax_002dconstant_002dsize-1965"></a>Specifies the maximum size, in bytes, of a constant that can be used as 127an operand in a RX instruction. Although the RX instruction set does 128allow constants of up to 4 bytes in length to be used in instructions, 129a longer value equates to a longer instruction. Thus in some 130circumstances it can be beneficial to restrict the size of constants 131that are used in instructions. Constants that are too big are instead 132placed into a constant pool and referenced via register indirection. 133 134 <p>The value <var>N</var> can be between 0 and 4. A value of 0 (the default) 135or 4 means that constants of any size are allowed. 136 137 <br><dt><code>-mrelax</code><dd><a name="index-mrelax-1966"></a>Enable linker relaxation. Linker relaxation is a process whereby the 138linker will attempt to reduce the size of a program by finding shorter 139versions of various instructions. Disabled by default. 140 141 <br><dt><code>-mint-register=</code><var>N</var><dd><a name="index-mint_002dregister-1967"></a>Specify the number of registers to reserve for fast interrupt handler 142functions. The value <var>N</var> can be between 0 and 4. A value of 1 143means that register <code>r13</code> will be reserved for the exclusive use 144of fast interrupt handlers. A value of 2 reserves <code>r13</code> and 145<code>r12</code>. A value of 3 reserves <code>r13</code>, <code>r12</code> and 146<code>r11</code>, and a value of 4 reserves <code>r13</code> through <code>r10</code>. 147A value of 0, the default, does not reserve any registers. 148 149 <br><dt><code>-msave-acc-in-interrupts</code><dd><a name="index-msave_002dacc_002din_002dinterrupts-1968"></a>Specifies that interrupt handler functions should preserve the 150accumulator register. This is only necessary if normal code might use 151the accumulator register, for example because it performs 64-bit 152multiplications. The default is to ignore the accumulator as this 153makes the interrupt handlers faster. 154 155 </dl> 156 157 <p><em>Note:</em> The generic GCC command line <samp><span class="option">-ffixed-</span><var>reg</var></samp> 158has special significance to the RX port when used with the 159<code>interrupt</code> function attribute. This attribute indicates a 160function intended to process fast interrupts. GCC will will ensure 161that it only uses the registers <code>r10</code>, <code>r11</code>, <code>r12</code> 162and/or <code>r13</code> and only provided that the normal use of the 163corresponding registers have been restricted via the 164<samp><span class="option">-ffixed-</span><var>reg</var></samp> or <samp><span class="option">-mint-register</span></samp> command line 165options. 166 167 </body></html> 168 169