FRV Options - Using the GNU Compiler Collection (GCC)
Description: Using the GNU Compiler Collection (GCC)

Next: GNU/Linux Options, Previous: FR30 Options, Up: Submodel Options

#### 3.17.11 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, that 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`’.