Next: S/390 and zSeries Options, Previous: RS/6000 and PowerPC Options, Up: Submodel Options
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
Floating-point instructions will only be generated for 32-bit floating-point values however, so if the -m64bit-doubles option is in use then the FPU hardware will not be used for doubles.
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=
nameThe 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
-msmall-data-limit=
Nr13
) 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 which once
could have been held in the reserved register are now pushed onto the
stack.
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=
NThe 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=
Nr13
will be 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.
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 will will ensure
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.