Contents|Index|Previous|Next
M680x0
Options
The following explains the
‘-m’
options defined for the 68000 series. The default values for these options
depends on which style of 68000 was selected when the compiler was configured;
the defaults for the most common choices are also given with the following
options.
-m68000
-mc68000
Generate output
for a 68000. This is the default when the compiler is configured for 68000-based
systems.
-m68020
-mc68020
Generate output
for a 68020. This is the default when the compiler is configured for 68020-based
systems.
-m68881
Generate output
containing 68881 instructions for floating point. This is the default for
most 68020 systems unless ‘-nfp’
was specified when the compiler was configured.
-m68030
Generate output for a 68030. This is the default when the compiler is configured
for 68030-based systems.
-m68040
Generate output for a 68040. This is the default when the compiler is configured
for 68040-based systems.
This option inhibits the
use of 68881/68882 instructions that have to be emulated by software on
the 68040. If your 68040 does not have code to emulate those instructions,
use ‘-m68040’.
-m68060
Generate output for a 68060. This is the default when the compiler is configured
for 68060-based systems. This option inhibits the use of 68020 and 68881/68882
instructions that have to be emulated by software on the 68060. If your
68060 does not have code to emulate those instructions, use ‘-m68060’.
-m5200
Generate output
for a 520x “Coldfire” family cpu. This is the default when
the compiler is configured for 520x-based systems.
-m68020-40
Generate output
for a 68040, without using any of the new instructions. This results in
code which can run relatively efficiently on either a 68020/68881 or a
68030 or a 68040. The generated code does use the 68881 instructions that
are emulated on the 68040.
-mfpa
Generate output
containing SunFPA instructions for floating point.
-msoft-float
Generate output
containing library calls for floating point.
Warning:
The requisite libraries are not available for all m68k
targets. Normally the facilities of the machine’s usual C compiler are
used, but this can’t be done directly in cross-compilation. You must make
your own arrangements to provide suitable library functions for cross-compilation.
The embedded targets m68k-*-aout
and m68k-*-coff
do provide software floating point support.
-mshort
Consider type
int
to be 16 bits wide, like short
int.
-mnobitfield
Do not use the
bit-field instructions. The -m68000
option implies -mnobitfield.
-mbitfield
Do use the bit-field
instructions. The -m68020
option implies
-mbitfield.
This is the default if you use a configuration designed for a 68020.
-mrtd
Use a different
function-calling convention, in which functions that take a fixed number
of arguments return with the rtd
instruction, which pops their arguments while returning. This saves one
instruction in the caller as there is no need to pop the arguments there.
The calling convention using
the -mrtd
option is incompatible with the one normally used on Unix, so you cannot
use it if you need to call libraries compiled with the Unix compiler.
Also, you must provide function
prototypes for all functions that take variable numbers of arguments (including
printf);
otherwise incorrect code will be generated for calls to those functions.
In addition, seriously incorrect
code will result if you call a function with too many arguments. (Normally,
extra arguments are harmlessly ignored.)
The rtd
instruction is supported by the 68010, 68020,68030, 68040, and 68060 processors
but not by the 68000 or the 5200 processors.