f38
Thumb_options
Contents|Index|Previous|Next
Thumb options
The following are the ‘-m’ options for Thumb.
-
-mthumb-interwork
Generate code which supports calling between the Thumb
and ARM instruction sets. Without this option, the two instruction sets
cannot be reliably used inside one program. The default is ‘-mno-thumb-interwork’,
since slightly smaller code is generated with this option.
-
-mtpcs-frame
Generate a stack frame that is compliant with the Thumb
Procedure Call Standard (hence, tpcs) for all non-leaf
functions. (A leaf function is one that does not call any other functions).
The default is ‘-mno-apcs-frame’.
-
-mtpcs-leaf-frame
Generate a stack frame that is compliant with the Thumb
Procedure Call Standard (hence, tpcs) for all leaf functions.
(A leaf function is one that does not call any other functions). The default
is ‘-mno-apcs-leaf-frame’.
-
-mlittle-endian
Generate code for a processor running in little-endian
mode. This is the default for all standard configurations.
-
-mbig-endian
Generate code for a processor running in big-endian mode.
-
-mstructure-size-boundary=<n>
The size of all structures and unions will be rounded
up to a multiple of the number of bits (n) set by this
option. Permissable values are 8 and 32. The default value varies for different
toolchains. For the COFF targeted toolchain, the default value is 8. Specifying
the larger number can produced faster, more effcient code, but can also
increase the size of the program. The two values are potentially incompatible.
Code compiled with one value cannot necessarily expect to work with code
or libraries compiled with the other value, if they exchange information
using structures or unions. Programmers are encouraged to use the 32 value
as future versions of the toolchain may default to this value.
-
-mnop-fun-dllimport
Disable the support for the dllimport attribute.
-
-mcallee-super-interworking
Gives all externally visible functions in the file being
compiled an ARM instruction set header which switches to Thumb mode before
executing the rest of the function. This allows these functions to be called
from non-interworking code.
-
-mcaller-super-interworking
Allows calls via function pointers (including virtual
functions) to execute correctly regardless of whether the target code has
been compiled for interworking or not. There is a small overhead in the
cost of executing a function pointer if this option is enabled.
0