| M680x0 Target Options

Previous | GCC Command-Line Options | Next

The GCC compiler used in TIGCC is configured for just one target family: the Motorola M680x0 (M68k) family. In the TI-89, TI-92+, and V200 calculators, an MC68000 processor is used, therefore TIGCC creates code for such a processor by default. However, switches specifying the processor model, such as '-m68020', still exist, although they are not useful. However, there are also options that control the code that is generated specifically for TI calculators; they also start with '-m':

-mno-bss
  Output all uninitialized global or static variables as normal data with zero content. Note that this leads to different semantics if the program is not compressed or archived: The variables will keep their values even after program termination, instead of being initialized to zero every time the program is run. For a better alternative, see `MERGE_BSS`.
-mlong
  Consider type `int` to be 32 bits wide, like `long int`. The '-mshort' option is enabled by default in TIGCC; the negative is actually '-mnoshort', but '-mno-short' and '-mlong' have been added as aliases. Constants such as `INT_MAX` are set to the appropriate values, and `__INT_SHORT__` will be defined if short integers are used (i.e. if this switch is not used). This option may be useful if you need to port code from a system which uses long integers.
-mno-tios
  Again, this is the negative form of a switch called '-mtios', which changes the convention for returning pointers from functions, and which also implies '-fcall-used-d2'. This is necessary to make GCC work with the TIOS calling conventions, therefore '-mno-tios' may only be used if no interaction with the operating system is required. Since library calls also use the TIOS calling convention, they cannot be used either; you should disable linking against `tigcc.a`. Only use this option if you know exactly what you are doing.
-mmlink
  Assume that uninitialized global variables can be handled smartly through BSS blocks even in kernel-less mode.
-mpcrel
  Use the pc-relative addressing mode of the 68000 directly, instead of using a global offset table (also known as the relocation table). Therefore, this option produces position-independent code.
-mregparm[=regcount]
  Use register passing for all user-defined functions. regcount data registers plus regcount address registers are used to pass arguments to functions. If regcount is not specified, a default value of 2 is used. You should not specify a value higher than 6, or 5 if you use `OPTIMIZE_ROM_CALLS`. Note that you have to be careful with callback functions if you use this switch, although you will be warned about incompatiblities.
-mbitfield
  Use bit-field instructions.
-malign-int
  Aligns `int`, `long`, `long long`, `float`, `double`, and `long double` variables on a 32-bit boundary.
-mno-strict-align
-mstrict-align
  Do not or do assume that unaligned memory references will be handled by the system.
-mno-merge-sections
  Do not merge the `.text` and `.data` sections, as TIGCC normally does (to save space used by relocation).
-mmerge-to-data
  When merging sections, merge to `.data` rather than to `.text`.
-mrodata-to-text
  When not merging sections, put read-only data into `.text` rather than `.data`.