CRIS Options (Using the GNU Compiler Collection (GCC))

#### 3.20.9 CRIS Options ¶

These options are defined specifically for the CRIS ports.

`-march=architecture-type` ¶
`-mcpu=architecture-type`

  Generate code for the specified architecture. The choices for architecture-type are ‘`v3`’, ‘`v8`’ and ‘`v10`’ for respectively ETRAX 4, ETRAX 100, and ETRAX 100 LX. Default is ‘`v0`’.

`-mtune=architecture-type` ¶

  Tune to architecture-type everything applicable about the generated code, except for the ABI and the set of available instructions. The choices for architecture-type are the same as for `-march=architecture-type`.

`-mmax-stackframe=n` ¶

  Warn when the stack frame of a function exceeds n bytes.

`-metrax4` ¶
`-metrax100`

  The options `-metrax4` and `-metrax100` are synonyms for `-march=v3` and `-march=v8` respectively.

`-mmul-bug-workaround` ¶
`-mno-mul-bug-workaround`

  Work around a bug in the `muls` and `mulu` instructions for CPU models where it applies. This option is disabled by default.

`-mpdebug` ¶

  Enable CRIS-specific verbose debug-related information in the assembly code. This option also has the effect of turning off the ‘`#NO_APP`’ formatted-code indicator to the assembler at the beginning of the assembly file.

`-mcc-init` ¶

  Do not use condition-code results from previous instruction; always emit compare and test instructions before use of condition codes.

`-mno-side-effects` ¶

  Do not emit instructions with side effects in addressing modes other than post-increment.

`-mstack-align` ¶
`-mno-stack-align`
`-mdata-align`
`-mno-data-align`
`-mconst-align`
`-mno-const-align`

  These options (‘`no-`’ options) arrange (eliminate arrangements) for the stack frame, individual data and constants to be aligned for the maximum single data access size for the chosen CPU model. The default is to arrange for 32-bit alignment. ABI details such as structure layout are not affected by these options.

`-m32-bit` ¶
`-m16-bit`
`-m8-bit`

  Similar to the stack- data- and const-align options above, these options arrange for stack frame, writable data and constants to all be 32-bit, 16-bit or 8-bit aligned. The default is 32-bit alignment.

`-mno-prologue-epilogue` ¶
`-mprologue-epilogue`

  With `-mno-prologue-epilogue`, the normal function prologue and epilogue which set up the stack frame are omitted and no return instructions or return sequences are generated in the code. Use this option only together with visual inspection of the compiled code: no warnings or errors are generated when call-saved registers must be saved, or storage for local variables needs to be allocated.

`-mbest-lib-options` ¶
`-moverride-best-lib-options`

  `-mbest-lib-options` selects the most feature-enabling options allowed by other options. This option has no ‘`no-`’ form, but `-moverride-best-lib-options` disables it regardless of the relative order of the two options on the command line.

`-mtrap-using-break8` ¶

  Emit traps as ‘`break 8`’. This is the default for CRIS v3 and up. If disabled, calls to `abort` are used instead.

`-mtrap-unaligned-atomic` ¶

  Emit checks causing ‘`break 8`’ instructions to execute when applying atomic builtins on misaligned memory.

`-munaligned-atomic-may-use-library` ¶

  Handle atomic builtins that may be applied to unaligned data by calling library functions. This option overrides `-mtrap-unaligned-atomic`.

`-sim` ¶

  This option arranges to link with input-output functions from a simulator library. Code, initialized data and zero-initialized data are allocated consecutively.

`-sim2` ¶

  Like `-sim`, but pass linker options to locate initialized data at 0x40000000 and zero-initialized data at 0x80000000.