Node:NS32K Options, Next:AVR Options, Previous:ARC Options, Up:Submodel Options

#### NS32K Options

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 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.
`-mieee-compare`
`-mno-ieee-compare`
  Control whether or not the compiler uses IEEE floating point comparisons. These handle correctly the case where the result of a comparison is unordered. Warning: the requisite kernel support 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.