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