Node: SH Options, Next: , Previous: H8/300 Options, Up: Submodel Options



SH Options

These -m options are defined for the SH implementations:

-m1
Generate code for the SH1.
-m2
Generate code for the SH2.
-m3
Generate code for the SH3.
-m3e
Generate code for the SH3e.
-m4-nofpu
Generate code for the SH4 without a floating-point unit.
-m4-single-only
Generate code for the SH4 with a floating-point unit that only supports single-precision arithmetic.
-m4-single
Generate code for the SH4 assuming the floating-point unit is in single-precision mode by default.
-m4
Generate code for the SH4.
-mb
Compile code for the processor in big endian mode.
-ml
Compile code for the processor in little endian mode.
-mdalign
Align doubles at 64-bit boundaries. Note that this changes the calling conventions, and thus some functions from the standard C library will not work unless you recompile it first with -mdalign.
-mrelax
Shorten some address references at link time, when possible; uses the linker option -relax.
-mbigtable
Use 32-bit offsets in switch tables. The default is to use 16-bit offsets.
-mfmovd
Enable the use of the instruction fmovd.
-mhitachi
Comply with the calling conventions defined by Renesas.
-mnomacsave
Mark the MAC register as call-clobbered, even if -mhitachi is given.
-mieee
Increase IEEE-compliance of floating-point code.
-misize
Dump instruction size and location in the assembly code.
-mpadstruct
This option is deprecated. It pads structures to multiple of 4 bytes, which is incompatible with the SH ABI.
-mspace
Optimize for space instead of speed. Implied by -Os.
-mprefergot
When generating position-independent code, emit function calls using the Global Offset Table instead of the Procedure Linkage Table.
-musermode
Generate a library function call to invalidate instruction cache entries, after fixing up a trampoline. This library function call doesn't assume it can write to the whole memory address space. This is the default when the target is sh-*-linux*.