gcc: V850 Options
1
1 3.18.51 V850 Options
1 --------------------
1
1 These '-m' options are defined for V850 implementations:
1
1 '-mlong-calls'
1 '-mno-long-calls'
1 Treat all calls as being far away (near). If calls are assumed to
1 be far away, the compiler always loads the function's address into
1 a register, and calls indirect through the pointer.
1
1 '-mno-ep'
1 '-mep'
1 Do not optimize (do optimize) basic blocks that use the same index
1 pointer 4 or more times to copy pointer into the 'ep' register, and
1 use the shorter 'sld' and 'sst' instructions. The '-mep' option is
1 on by default if you optimize.
1
1 '-mno-prolog-function'
1 '-mprolog-function'
1 Do not use (do use) external functions to save and restore
1 registers at the prologue and epilogue of a function. The external
1 functions are slower, but use less code space if more than one
1 function saves the same number of registers. The
1 '-mprolog-function' option is on by default if you optimize.
1
1 '-mspace'
1 Try to make the code as small as possible. At present, this just
1 turns on the '-mep' and '-mprolog-function' options.
1
1 '-mtda=N'
1 Put static or global variables whose size is N bytes or less into
1 the tiny data area that register 'ep' points to. The tiny data
1 area can hold up to 256 bytes in total (128 bytes for byte
1 references).
1
1 '-msda=N'
1 Put static or global variables whose size is N bytes or less into
1 the small data area that register 'gp' points to. The small data
1 area can hold up to 64 kilobytes.
1
1 '-mzda=N'
1 Put static or global variables whose size is N bytes or less into
1 the first 32 kilobytes of memory.
1
1 '-mv850'
1 Specify that the target processor is the V850.
1
1 '-mv850e3v5'
1 Specify that the target processor is the V850E3V5. The
1 preprocessor constant '__v850e3v5__' is defined if this option is
1 used.
1
1 '-mv850e2v4'
1 Specify that the target processor is the V850E3V5. This is an
1 alias for the '-mv850e3v5' option.
1
1 '-mv850e2v3'
1 Specify that the target processor is the V850E2V3. The
1 preprocessor constant '__v850e2v3__' is defined if this option is
1 used.
1
1 '-mv850e2'
1 Specify that the target processor is the V850E2. The preprocessor
1 constant '__v850e2__' is defined if this option is used.
1
1 '-mv850e1'
1 Specify that the target processor is the V850E1. The preprocessor
1 constants '__v850e1__' and '__v850e__' are defined if this option
1 is used.
1
1 '-mv850es'
1 Specify that the target processor is the V850ES. This is an alias
1 for the '-mv850e1' option.
1
1 '-mv850e'
1 Specify that the target processor is the V850E. The preprocessor
1 constant '__v850e__' is defined if this option is used.
1
1 If neither '-mv850' nor '-mv850e' nor '-mv850e1' nor '-mv850e2' nor
1 '-mv850e2v3' nor '-mv850e3v5' are defined then a default target
1 processor is chosen and the relevant '__v850*__' preprocessor
1 constant is defined.
1
1 The preprocessor constants '__v850' and '__v851__' are always
1 defined, regardless of which processor variant is the target.
1
1 '-mdisable-callt'
1 '-mno-disable-callt'
1 This option suppresses generation of the 'CALLT' instruction for
1 the v850e, v850e1, v850e2, v850e2v3 and v850e3v5 flavors of the
1 v850 architecture.
1
1 This option is enabled by default when the RH850 ABI is in use (see
1 '-mrh850-abi'), and disabled by default when the GCC ABI is in use.
1 If 'CALLT' instructions are being generated then the C preprocessor
1 symbol '__V850_CALLT__' is defined.
1
1 '-mrelax'
1 '-mno-relax'
1 Pass on (or do not pass on) the '-mrelax' command-line option to
1 the assembler.
1
1 '-mlong-jumps'
1 '-mno-long-jumps'
1 Disable (or re-enable) the generation of PC-relative jump
1 instructions.
1
1 '-msoft-float'
1 '-mhard-float'
1 Disable (or re-enable) the generation of hardware floating point
1 instructions. This option is only significant when the target
1 architecture is 'V850E2V3' or higher. If hardware floating point
1 instructions are being generated then the C preprocessor symbol
1 '__FPU_OK__' is defined, otherwise the symbol '__NO_FPU__' is
1 defined.
1
1 '-mloop'
1 Enables the use of the e3v5 LOOP instruction. The use of this
1 instruction is not enabled by default when the e3v5 architecture is
1 selected because its use is still experimental.
1
1 '-mrh850-abi'
1 '-mghs'
1 Enables support for the RH850 version of the V850 ABI. This is the
1 default. With this version of the ABI the following rules apply:
1
1 * Integer sized structures and unions are returned via a memory
1 pointer rather than a register.
1
1 * Large structures and unions (more than 8 bytes in size) are
1 passed by value.
1
1 * Functions are aligned to 16-bit boundaries.
1
1 * The '-m8byte-align' command-line option is supported.
1
1 * The '-mdisable-callt' command-line option is enabled by
1 default. The '-mno-disable-callt' command-line option is not
1 supported.
1
1 When this version of the ABI is enabled the C preprocessor symbol
1 '__V850_RH850_ABI__' is defined.
1
1 '-mgcc-abi'
1 Enables support for the old GCC version of the V850 ABI. With this
1 version of the ABI the following rules apply:
1
1 * Integer sized structures and unions are returned in register
1 'r10'.
1
1 * Large structures and unions (more than 8 bytes in size) are
1 passed by reference.
1
1 * Functions are aligned to 32-bit boundaries, unless optimizing
1 for size.
1
1 * The '-m8byte-align' command-line option is not supported.
1
1 * The '-mdisable-callt' command-line option is supported but not
1 enabled by default.
1
1 When this version of the ABI is enabled the C preprocessor symbol
1 '__V850_GCC_ABI__' is defined.
1
1 '-m8byte-align'
1 '-mno-8byte-align'
1 Enables support for 'double' and 'long long' types to be aligned on
1 8-byte boundaries. The default is to restrict the alignment of all
1 objects to at most 4-bytes. When '-m8byte-align' is in effect the
1 C preprocessor symbol '__V850_8BYTE_ALIGN__' is defined.
1
1 '-mbig-switch'
1 Generate code suitable for big switch tables. Use this option only
1 if the assembler/linker complain about out of range branches within
1 a switch table.
1
1 '-mapp-regs'
1 This option causes r2 and r5 to be used in the code generated by
1 the compiler. This setting is the default.
1
1 '-mno-app-regs'
1 This option causes r2 and r5 to be treated as fixed registers.
1