9.38.1 RX Options

The Renesas RX port of as has a few target specfic command line options:

-m32bit-doubles
This option controls the ABI and indicates to use a 32-bit float ABI. It has no effect on the assembled instructions, but it does influence the behaviour of the ‘ .double ’ pseudo-op. This is the default.


-m64bit-doubles
This option controls the ABI and indicates to use a 64-bit float ABI. It has no effect on the assembled instructions, but it does influence the behaviour of the ‘ .double ’ pseudo-op.


-mbig-endian
This option controls the ABI and indicates to use a big-endian data ABI. It has no effect on the assembled instructions, but it does influence the behaviour of the ‘ .short ’, ‘ .hword ’, ‘ .int ’, ‘ .word ’, ‘ .long ’, ‘ .quad ’ and ‘ .octa ’ pseudo-ops.


-mlittle-endian
This option controls the ABI and indicates to use a little-endian data ABI. It has no effect on the assembled instructions, but it does influence the behaviour of the ‘ .short ’, ‘ .hword ’, ‘ .int ’, ‘ .word ’, ‘ .long ’, ‘ .quad ’ and ‘ .octa ’ pseudo-ops. This is the default.


-muse-conventional-section-names
This option controls the default names given to the code (.text), initialised data (.data) and uninitialised data sections (.bss).


-muse-renesas-section-names
This option controls the default names given to the code (.P), initialised data (.D_1) and uninitialised data sections (.B_1). This is the default.


-msmall-data-limit
This option tells the assembler that the small data limit feature of the RX port of GCC is being used. This results in the assembler generating an undefined reference to a symbol called __gp for use by the relocations that are needed to support the small data limit feature. This option is not enabled by default as it would otherwise pollute the symbol table.


-mpid
This option tells the assembler that the position independent data of the RX port of GCC is being used. This results in the assembler generating an undefined reference to a symbol called __pid_base , and also setting the RX_PID flag bit in the e_flags field of the ELF header of the object file.


-mint-register= num
This option tells the assembler how many registers have been reserved for use by interrupt handlers. This is needed in order to compute the correct values for the %gpreg and %pidreg meta registers.


-mgcc-abi
This option tells the assembler that the old GCC ABI is being used by the assembled code. With this version of the ABI function arguments that are passed on the stack are aligned to a 32-bit boundary.


-mrx-abi
This option tells the assembler that the official RX ABI is being used by the assembled code. With this version of the ABI function arguments that are passed on the stack are aligned to their natural alignments. This option is the default.


-mcpu= name
This option tells the assembler the target CPU type. Currently the rx100 , rx200 , rx600 , rx610 and rxv2 are recognised as valid cpu names. Attempting to assemble an instruction not supported by the indicated cpu type will result in an error message being generated.


-mno-allow-string-insns
This option tells the assembler to mark the object file that it is building as one that does not use the string instructions SMOVF , SCMPU , SMOVB , SMOVU , SUNTIL SWHILE or the RMPA instruction. In addition the mark tells the linker to complain if an attempt is made to link the binary with another one that does use any of these instructions.

Note - the inverse of this option, -mallow-string-insns , is not needed. The assembler automatically detects the use of the the instructions in the source code and labels the resulting object file appropriately. If no string instructions are detected then the object file is labelled as being one that can be linked with either string-using or string-banned object files.