3.17.32 SPU Options
These `-m' options are supported on the SPU:
The loader for SPU does not handle dynamic relocations. By default, GCC
will give an error when it generates code that requires a dynamic
relocation. -mno-error-reloc disables the error,
-mwarn-reloc will generate a warning instead.
Instructions which initiate or test completion of DMA must not be
reordered with respect to loads and stores of the memory which is being
accessed. Users typically address this problem using the volatile
keyword, but that can lead to inefficient code in places where the
memory is known to not change. Rather than mark the memory as volatile
we treat the DMA instructions as potentially effecting all memory. With
-munsafe-dma users must use the volatile keyword to protect
By default, GCC will generate a branch hint instruction to avoid
pipeline stalls for always taken or probably taken branches. A hint
will not be generated closer than 8 instructions away from its branch.
There is little reason to disable them, except for debugging purposes,
or to make an object a little bit smaller.
By default, GCC generates code assuming that addresses are never larger
than 18 bits. With -mlarge-mem code is generated that assumes
a full 32 bit address.
By default, GCC links against startup code that assumes the SPU-style
main function interface (which has an unconventional parameter list).
With -mstdmain, GCC will link your program against startup
code that assumes a C99-style interface to
main, including a
local copy of
- Generate code treating the given register range as fixed registers.
A fixed register is one that the register allocator can not use. This is
useful when compiling kernel code. A register range is specified as
two registers separated by a dash. Multiple register ranges can be
specified separated by a comma.