These command-line options are defined for RX targets:
-m64bit-doubles
-m32bit-doubles
double
data type be 64 bits (-m64bit-doubles
) or 32 bits (-m32bit-doubles
) in size. The default is -m32bit-doubles
. Note RX floating-point hardware only works on 32-bit values, which is why the default is -m32bit-doubles
. -fpu
-nofpu
-fpu
) or disables (-nofpu
) the use of RX floating-point hardware. The default is enabled for the RX600 series and disabled for the RX200 series. Floating-point instructions are only generated for 32-bit floating-point values, however, so the FPU hardware is not used for doubles if the -m64bit-doubles
option is used.
Note If the -fpu
option is enabled then -funsafe-math-optimizations
is also enabled automatically. This is because the RX FPU instructions are themselves unsafe.
-mcpu=
name
RX600
’ and ‘RX200
’ series hardware and the specific ‘RX610
’ CPU. The default is ‘RX600
’. The only difference between ‘RX600
’ and ‘RX610
’ is that the ‘RX610
’ does not support the MVTIPL
instruction.
The ‘RX200
’ series does not have a hardware floating-point unit and so -nofpu
is enabled by default when this type is selected.
-mbig-endian-data
-mlittle-endian-data
-mlittle-endian-data
, i.e. to store data in the little-endian format. -msmall-data-limit=
N
r13
) is reserved for use pointing to this area, so it is no longer available for use by the compiler. This could result in slower and/or larger code if variables are pushed onto the stack instead of being held in this register. Note, common variables (variables that have not been initialized) and constants are not placed into the small data area as they are assigned to other sections in the output executable.
The default value is zero, which disables this feature. Note, this feature is not enabled by default with higher optimization levels (-O2
etc) because of the potentially detrimental effects of reserving a register. It is up to the programmer to experiment and discover whether this feature is of benefit to their program. See the description of the -mpid
option for a description of how the actual register to hold the small data area pointer is chosen.
-msim
-mno-sim
-mas100-syntax
-mno-as100-syntax
-mmax-constant-size=
N
The value N can be between 0 and 4. A value of 0 (the default) or 4 means that constants of any size are allowed.
-mrelax
-mint-register=
N
r13
is reserved for the exclusive use of fast interrupt handlers. A value of 2 reserves r13
and r12
. A value of 3 reserves r13
, r12
and r11
, and a value of 4 reserves r13
through r10
. A value of 0, the default, does not reserve any registers. -msave-acc-in-interrupts
-mpid
-mno-pid
Note, using this feature reserves a register, usually r13
, for the constant data base address. This can result in slower and/or larger code, especially in complicated functions.
The actual register chosen to hold the constant data base address depends upon whether the -msmall-data-limit
and/or the -mint-register
command-line options are enabled. Starting with register r13
and proceeding downwards, registers are allocated first to satisfy the requirements of -mint-register
, then -mpid
and finally -msmall-data-limit
. Thus it is possible for the small data area register to be r8
if both -mint-register=4
and -mpid
are specified on the command line.
By default this feature is not enabled. The default can be restored via the -mno-pid
command-line option.
-mno-warn-multiple-fast-interrupts
-mwarn-multiple-fast-interrupts
-mallow-string-insns
-mno-allow-string-insns
SMOVF
, SCMPU
, SMOVB
, SMOVU
, SUNTIL
SWHILE
and also the RMPA
instruction. These instructions may prefetch data, which is not safe to do if accessing an I/O register. (See section 12.2.7 of the RX62N Group User's Manual for more information). The default is to allow these instructions, but it is not possible for GCC to reliably detect all circumstances where a string instruction might be used to access an I/O register, so their use cannot be disabled automatically. Instead it is reliant upon the programmer to use the -mno-allow-string-insns
option if their program accesses I/O space.
When the instructions are enabled GCC defines the C preprocessor symbol __RX_ALLOW_STRING_INSNS__
, otherwise it defines the symbol __RX_DISALLOW_STRING_INSNS__
.
-mjsr
-mno-jsr
JSR
instructions to access functions. This option can be used when code size exceeds the range of BSR
instructions. Note that -mno-jsr
does not mean to not use JSR
but instead means that any type of branch may be used. Note: The generic GCC command-line option -ffixed-reg has special significance to the RX port when used with the interrupt
function attribute. This attribute indicates a function intended to process fast interrupts. GCC ensures that it only uses the registers r10
, r11
, r12
and/or r13
and only provided that the normal use of the corresponding registers have been restricted via the -ffixed-reg or -mint-register
command-line options.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/RX-Options.html