These are the `-m' options defined for the 32000 series. The default
values for these options depends on which style of 32000 was selected when
the compiler was configured; the defaults for the most common choices are
given below.
-m32032
-m32032
Generate output for a 32032. This is the default
when the compiler is configured for 32032 and 32016 based systems.
-m32332
-m32332
Generate output for a 32332. This is the default
when the compiler is configured for 32332-based systems.
-m32532
-m32532
Generate output for a 32532. This is the default
when the compiler is configured for 32532-based systems.
-m32081
Generate output containing 32081 instructions for floating point.
This is the default for all systems.
-m32381
Generate output containing 32381 instructions for floating point. This
also implies `-m32081'. The 32381 is only compatible with the 32332
and 32532 cpus. This is the default for the pc532-netbsd configuration.
-mmulti-add
Try and generate multiply-add floating point instructions polyF
and dotF. This option is only available if the `-m32381'
option is in effect. Using these instructions requires changes to to
register allocation which generally has a negative impact on
performance. This option should only be enabled when compiling code
particularly likely to make heavy use of multiply-add instructions.
-mnomulti-add
Do not try and generate multiply-add floating point instructions
polyF and dotF. This is the default on all platforms.
-msoft-float
Generate output containing library calls for floating point.
Warning: the requisite libraries may not be available.
-mnobitfield
Do not use the bit-field instructions. On some machines it is faster to
use shifting and masking operations. This is the default for the pc532.
-mbitfield
Do use the bit-field instructions. This is the default for all platforms
except the pc532.
-mrtd
Use a different function-calling convention, in which functions
that take a fixed number of arguments return pop their
arguments on return with the ret instruction.
This calling convention is incompatible with the one normally
used on Unix, so you cannot use it if you need to call libraries
compiled with the Unix compiler.
Also, you must provide function prototypes for all functions that
take variable numbers of arguments (including printf);
otherwise incorrect code will be generated for calls to those
functions.
In addition, seriously incorrect code will result if you call a
function with too many arguments. (Normally, extra arguments are
harmlessly ignored.)
This option takes its name from the 680x0 rtd instruction.
-mregparam
Use a different function-calling convention where the first two arguments
are passed in registers.
This calling convention is incompatible with the one normally
used on Unix, so you cannot use it if you need to call libraries
compiled with the Unix compiler.
-mnoregparam
Do not pass any arguments in registers. This is the default for all
targets.
-msb
It is OK to use the sb as an index register which is always loaded with
zero. This is the default for the pc532-netbsd target.
-mnosb
The sb register is not available for use or has not been initialized to
zero by the run time system. This is the default for all targets except
the pc532-netbsd. It is also implied whenever `-mhimem' or
`-fpic' is set.
-mhimem
Many ns32000 series addressing modes use displacements of up to 512MB.
If an address is above 512MB then displacements from zero can not be used.
This option causes code to be generated which can be loaded above 512MB.
This may be useful for operating systems or ROM code.
-mnohimem
Assume code will be loaded in the first 512MB of virtual address space.
This is the default for all platforms.