-
Notifications
You must be signed in to change notification settings - Fork 7
M680x0 Options
These are the -m
options defined for M680x0 and ColdFire processors. The default settings depend on which architecture was selected when the compiler was configured; the defaults for the most common choices are given below.
Generate code for a specific M680x0 or ColdFire instruction set architecture. Permissible values of arch for M680x0 architectures are: 68000
, 68010
, 68020
, 68030
, 68040
, 68060
and cpu32
. ColdFire architectures are selected according to Freescale's ISA classification and the permissible values are: isaa
, isaaplus
, isab
and isac
.
GCC defines a macro __mcfarch__
whenever it is generating code for a ColdFire target. The arch in this macro is one of the -march arguments given above.
When used together, -march
and -mtune
select code that runs on a family of similar processors but that is optimized for a particular microarchitecture.
Generate code for a specific M680x0 or ColdFire processor. The M680x0 cpus are: 68000
, 68010
, 68020
, 68030
, 68040
, 68060
, 68302
, 68332
and cpu32
. The ColdFire cpus are given by the table below, which also classifies the CPUs into families:
Family : -mcpu arguments
51 : 51 51ac 51ag 51cn 51em 51je 51jf 51jg 51jm 51mm 51qe 51qm
5206 : 5202 5204 5206
5206e : 5206e
5208 : 5207 5208
5211a : 5210a 5211a
5213 : 5211 5212 5213
5216 : 5214 5216
52235 : 52230 52231 52232 52233 52234 52235
5225 : 5224 5225
52259 : 52252 52254 52255 52256 52258 52259
5235 : 5232 5233 5234 5235 523x
5249 : 5249
5250 : 5250
5271 : 5270 5271
5272 : 5272
5275 : 5274 5275
5282 : 5280 5281 5282 528x
53017 : 53011 53012 53013 53014 53015 53016 53017
5307 : 5307
5329 : 5327 5328 5329 532x
5373 : 5372 5373 537x
5407 : 5407
5475 : 5470 5471 5472 5473 5474 5475 547x 5480 5481 5482 5483 5484 5485
-mcpu=cpu
overrides -march=arch
if arch
is compatible with cpu
. Other combinations of -mcpu
and -march
are rejected.
GCC defines the macro __mcf_cpu_cpu
when ColdFire target cpu is selected. It also defines __mcf_family_family
, where the value of family is given by the table above.
Tune the code for a particular microarchitecture within the constraints set by -march
and -mcpu
. The M680x0 microarchitectures are: 68000
, 68010
, 68020
, 68030
, 68040
, 68060
and cpu32
. The ColdFire microarchitectures are: cfv1
, cfv2
, cfv3
, cfv4
and cfv4e
.
You can also use -mtune=68020-40
for code that needs to run relatively well on 68020, 68030 and 68040 targets. -mtune=68020-60
is similar but includes 68060 targets as well. These two options select the same tuning decisions as -m68020-40
and -m68020-60
respectively.
GCC defines the macros __mcarch
and __mcarch__
when tuning for 680x0 architecture arch. It also defines mcarch
unless either -ansi
or a non-GNU -std
option is used. If GCC is tuning for a range of architectures, as selected by -mtune=68020-40
or -mtune=68020-60
, it defines the macros for every architecture in the range.
GCC also defines the macro __muarch__
when tuning for ColdFire microarchitecture uarch
, where uarch
is one of the arguments given above.
Generate output for a 68000. This is the default when the compiler is configured for 68000-based systems. It is equivalent to -march=68000
.
Use this option for microcontrollers with a 68000 or EC000 core, including the 68008, 68302, 68306, 68307, 68322, 68328 and 68356.
Generate output for a 68010. This is the default when the compiler is configured for 68010-based systems. It is equivalent to -march=68010
.
Generate output for a 68020. This is the default when the compiler is configured for 68020-based systems. It is equivalent to -march=68020
.
Generate output for a 68030. This is the default when the compiler is configured for 68030-based systems. It is equivalent to -march=68030
.
Generate output for a 68040. This is the default when the compiler is configured for 68040-based systems. It is equivalent to -march=68040
.
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.
Generate output for a 68060. This is the default when the compiler is configured for 68060-based systems. It is equivalent to -march=68060
.
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.
Generate output for a CPU32. This is the default when the compiler is configured for CPU32-based systems. It is equivalent to -march=cpu32
.
Use this option for microcontrollers with a CPU32 or CPU32+ core, including the 68330, 68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 and 68360.
Generate output for a 520X ColdFire CPU. This is the default when the compiler is configured for 520X-based systems. It is equivalent to -mcpu=5206
, and is now deprecated in favor of that option.
Use this option for microcontroller with a 5200 core, including the MCF5202, MCF5203, MCF5204 and MCF5206.
Generate output for a 5206e ColdFire CPU. The option is now deprecated in favor of the equivalent -mcpu=5206e
.
Generate output for a member of the ColdFire 528X family. The option is now deprecated in favor of the equivalent -mcpu=528x
.
Generate output for a ColdFire 5307 CPU. The option is now deprecated in favor of the equivalent -mcpu=5307
.
Generate output for a ColdFire 5407 CPU. The option is now deprecated in favor of the equivalent -mcpu=5407
.
Generate output for a ColdFire V4e family CPU (e.g. 547x/548x). This includes use of hardware floating-point instructions. The option is equivalent to -mcpu=547x
, and is now deprecated in favor of that option.
Generate output for a 68040, without using any of the new instructions. This results in code that 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.
The option is equivalent to -march=68020 -mtune=68020-40
.
Generate output for a 68060, without using any of the new instructions. This results in code that 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 68060.
The option is equivalent to -march=68020 -mtune=68020-60
.
Generate floating-point instructions. This is the default for 68020 and above, and for ColdFire devices that have an FPU. It defines the macro __HAVE_68881__
on M680x0 targets and __mcffpu__
on ColdFire targets.
Do not generate floating-point instructions; use library calls instead. This is the default for 68000, 68010, and 68832 targets. It is also the default for ColdFire devices that have no FPU.