These are 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
given below.
-m68000
-mc68000
Use this option for microcontrollers with a 68000 or EC000 core,
including the 68008, 68302, 68306, 68307, 68322, 68328 and 68356.
-m68020
-mc68020
-m68881
--nfp
was
specified when the compiler was configured.
-m68030
-m68040
This option inhibits the use of 68881/68882 instructions that have to be
emulated by software on the 68040. Use this option if your 68040 does not
have code to emulate those instructions.
-m68060
This option inhibits the use of 68020 and 68881/68882 instructions that
have to be emulated by software on the 68060. Use this option if your 68060
does not have code to emulate those instructions.
-mcpu32
Use this option for microcontrollers with a
CPU32 or CPU32+ core, including the 68330, 68331, 68332, 68333, 68334,
68336, 68340, 68341, 68349 and 68360.
-m5200
Use this option for microcontroller with a 5200 core, including
the MCF5202, MCF5203, MCF5204 and MCF5202.
-m68020-40
-m68020-60
-mfpa
-msoft-float
m68k-*-aout
and
m68k-*-coff
do provide software floating point support.
-mshort
int
to be 16 bits wide, like short int
.
-mnobitfield
-m68000
, -mcpu32
and -m5200
options imply -mnobitfield
.
-mbitfield
-m68020
option implies
-mbitfield
. This is the default if you use a configuration
designed for a 68020.
-mrtd
rtd
instruction, which pops their arguments while returning. This
saves one instruction in the caller since there is no need to pop
the arguments there.
This calling convention 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, 68060 and CPU32 processors, but not by the 68000 or 5200.
-malign-int
-mno-align-int
int
, long
, long long
,
float
, double
, and long double
variables on a 32-bit
boundary (-malign-int
) or a 16-bit boundary (-mno-align-int
).
Aligning variables on 32-bit boundaries produces code that runs somewhat
faster on processors with 32-bit busses at the expense of more memory.
Warning: if you use the -malign-int
switch, GCC will
align structures containing the above types differently than
most published application binary interface specifications for the m68k.
-mpcrel
-fpic
,
allowing at most a 16-bit offset for pc-relative addressing. -fPIC
is
not presently supported with -mpcrel
, though this could be supported for
68020 and higher processors.
-mno-strict-align
-mstrict-align