#### 3.18.16 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.

`-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.

`-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`’.