FRV Options#

-mgpr-32#

Only use the first 32 general-purpose registers.

-mgpr-64#

Use all 64 general-purpose registers.

-mfpr-32#

Use only the first 32 floating-point registers.

-mfpr-64#

Use all 64 floating-point registers.

-mhard-float#

Use hardware instructions for floating-point operations.

-msoft-float#

Use library routines for floating-point operations.

-malloc-cc#

Dynamically allocate condition code registers.

-mfixed-cc#

Do not try to dynamically allocate condition code registers, only use icc0 and fcc0.

-mdword#

Change ABI to use double word insns.

-mno-dword#

Do not use double word instructions.

-mdword#

Default setting; overrides -mno-dword.

-mdouble#

Use floating-point double instructions.

-mno-double#

Do not use floating-point double instructions.

-mmedia#

Use media instructions.

-mno-media#

Do not use media instructions.

-mmuladd#

Use multiply and add/subtract instructions.

-mno-muladd#

Do not use multiply and add/subtract instructions.

-mfdpic#

Select the FDPIC ABI, which uses function descriptors to represent pointers to functions. Without any PIC/PIE-related options, it implies -fPIE. With -fpic or -fpie, it assumes GOT entries and small data are within a 12-bit range from the GOT base address; with -fPIC or -fPIE, GOT offsets are computed with 32 bits. With a bfin-elf target, this option implies -msim.

-minline-plt#

Enable inlining of PLT entries in function calls to functions that are not known to bind locally. It has no effect without -mfdpic. It’s enabled by default if optimizing for speed and compiling for shared libraries (i.e., -fPIC or -fpic), or when an optimization option such as -O3 or above is present in the command line.

-mTLS#

Assume a large TLS segment when generating thread-local code.

-mtls#

Do not assume a large TLS segment when generating thread-local code.

-mgprel-ro#

Enable the use of GPREL relocations in the FDPIC ABI for data that is known to be in read-only sections. It’s enabled by default, except for -fpic or -fpie : even though it may help make the global offset table smaller, it trades 1 instruction for 4. With -fPIC or -fPIE, it trades 3 instructions for 4, one of which may be shared by multiple symbols, and it avoids the need for a GOT entry for the referenced symbol, so it’s more likely to be a win. If it is not, -mno-gprel-ro can be used to disable it.

-multilib-library-pic#

Link with the (library, not FD) pic libraries. It’s implied by -mlibrary-pic, as well as by -fPIC and -fpic without -mfdpic. You should never have to use it explicitly.

-mlinked-fp#

Follow the EABI requirement of always creating a frame pointer whenever a stack frame is allocated. This option is enabled by default and can be disabled with -mno-linked-fp.

-mlong-calls#

Use indirect addressing to call functions outside the current compilation unit. This allows the functions to be placed anywhere within the 32-bit address space.

-malign-labels#

Try to align labels to an 8-byte boundary by inserting NOPs into the previous packet. This option only has an effect when VLIW packing is enabled. It doesn’t create new packets; it merely adds NOPs to existing ones.

-mlibrary-pic#

Generate position-independent EABI code.

-macc-4#

Use only the first four media accumulator registers.

-macc-8#

Use all eight media accumulator registers.

-mpack#

Pack VLIW instructions.

-mno-pack#

Do not pack VLIW instructions.

-mno-eflags#

Do not mark ABI switches in e_flags.

-mcond-move#

Enable the use of conditional-move instructions (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-cond-move#

Disable the use of conditional-move instructions.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mscc#

Enable the use of conditional set instructions (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-scc#

Disable the use of conditional set instructions.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mcond-exec#

Enable the use of conditional execution (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-cond-exec#

Disable the use of conditional execution.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mvliw-branch#

Run a pass to pack branches into VLIW instructions (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-vliw-branch#

Do not run a pass to pack branches into VLIW instructions.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mmulti-cond-exec#

Enable optimization of && and || in conditional execution (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-multi-cond-exec#

Disable optimization of && and || in conditional execution.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mnested-cond-exec#

Enable nested conditional execution optimizations (default).

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-mno-nested-cond-exec#

Disable nested conditional execution optimizations.

This switch is mainly for debugging the compiler and will likely be removed in a future version.

-moptimize-membar#

This switch removes redundant membar instructions from the compiler-generated code. It is enabled by default.

-mno-optimize-membar#

This switch disables the automatic removal of redundant membar instructions from the generated code.

-moptimize-membar#

Default setting; overrides -mno-optimize-membar.

-mtomcat-stats#

Cause gas to print out tomcat statistics.

-mcpu=cpu#

Select the processor type for which to generate code. Possible values are frv, fr550, tomcat, fr500, fr450, fr405, fr400, fr300 and simple.