-mcpu=
cpu
[
-
sirevision
]
Specifies the name of the target Blackfin processor. Currently, cpu
can be one of bf522, bf523, bf524,
bf525, bf526, bf527,
bf531, bf532, bf533, bf534,
bf536, bf537, bf538, bf539,
bf542, bf544, bf547, bf548, bf549,
bf561.
The optional sirevision specifies the silicon revision of the target
Blackfin processor. Any workarounds available for the targeted silicon revision
will be enabled. If sirevision is none, no workarounds are enabled.
If sirevision is any, all workarounds for the targeted processor
will be enabled. The __SILICON_REVISION__
macro is defined to two
hexadecimal digits representing the major and minor numbers in the silicon
revision. If sirevision is none, the __SILICON_REVISION__
is not defined. If sirevision is any, the
__SILICON_REVISION__
is defined to be 0xffff
.
If this optional sirevision is not used, GCC assumes the latest known
silicon revision of the targeted Blackfin processor.
Support for bf561 is incomplete. For bf561,
Only the processor macro is defined.
Without this option, bf532 is used as the processor by default.
The corresponding predefined processor macros for cpu is to
be defined. And for bfin-elf toolchain, this causes the hardware BSP
provided by libgloss to be linked in if -msim is not given.
-msim
Specifies that the program will be run on the simulator. This causes
the simulator BSP provided by libgloss to be linked in. This option
has effect only for bfin-elf toolchain.
Certain other options, such as -mid-shared-library and
-mfdpic, imply -msim.
-momit-leaf-frame-pointer
Don't keep the frame pointer in a register for leaf functions. This
avoids the instructions to save, set up and restore frame pointers and
makes an extra register available in leaf functions. The option
-fomit-frame-pointer removes the frame pointer for all functions
which might make debugging harder.
-mspecld-anomaly
When enabled, the compiler will ensure that the generated code does not
contain speculative loads after jump instructions. If this option is used,
__WORKAROUND_SPECULATIVE_LOADS
is defined.
-mno-specld-anomaly
Don't generate extra code to prevent speculative loads from occurring.
-mcsync-anomaly
When enabled, the compiler will ensure that the generated code does not
contain CSYNC or SSYNC instructions too soon after conditional branches.
If this option is used, __WORKAROUND_SPECULATIVE_SYNCS
is defined.
-mno-csync-anomaly
Don't generate extra code to prevent CSYNC or SSYNC instructions from
occurring too soon after a conditional branch.
-mlow-64k
When enabled, the compiler is free to take advantage of the knowledge that
the entire program fits into the low 64k of memory.
-mno-low-64k
Assume that the program is arbitrarily large. This is the default.
-mstack-check-l1
Do stack checking using information placed into L1 scratchpad memory by the
uClinux kernel.
-mid-shared-library
-mno-id-shared-library
-mleaf-id-shared-library
-mno-leaf-id-shared-library
-mshared-library-id=n
-msep-data
Generate code that allows the data segment to be located in a different
area of memory from the text segment. This allows for execute in place in
an environment without virtual memory management by eliminating relocations
against the text section.
-mno-sep-data
Generate code that assumes that the data segment follows the text segment.
This is the default.
-mlong-calls
-mno-long-calls
Tells the compiler to perform function calls by first loading the address of the function into a register and then performing a subroutine call on this register. This switch is needed if the target function will lie outside of the 24 bit addressing range of the offset based version of subroutine call instruction.
This feature is not enabled by default. Specifying
-mno-long-calls will restore the default behavior. Note these
switches have no effect on how the compiler generates code to handle
function calls via function pointers.
-mfast-fp
Link with the fast floating-point library. This library relaxes some of
the IEEE floating-point standard's rules for checking inputs against
Not-a-Number (NAN), in the interest of performance.
-minline-plt
Enable inlining of PLT entries in function calls to functions that are not known to bind locally. It has no effect without -mfdpic.