#### 9.29.1 Options

`-mmcu`

  selects the mcu architecture. If the architecture is 430Xv2 then this also enables NOP generation unless the `-mN` is also specified.

`-mcpu`

  selects the cpu architecture. If the architecture is 430Xv2 then this also enables NOP generation unless the `-mN` is also specified.

`-msilicon-errata=name[,name…]`

  Implements a fixup for named silicon errata. Multiple silicon errata can be specified by multiple uses of the `-msilicon-errata` option and/or by including the errata names, separated by commas, on an individual `-msilicon-errata` option. Errata names currently recognised by the assembler are:

  `cpu4`

    `PUSH #4` and `PUSH #8` need longer encodings on the MSP430. This option is enabled by default, and cannot be disabled.

  `cpu8`

    Do not set the `SP` to an odd value.

  `cpu11`

    Do not update the `SR` and the `PC` in the same instruction.

  `cpu12`

    Do not use the `PC` in a `CMP` or `BIT` instruction.

  `cpu13`

    Do not use an arithmetic instruction to modify the `SR`.

  `cpu19`

    Insert `NOP` after `CPUOFF`.

`-msilicon-errata-warn=name[,name…]`

  Like the `-msilicon-errata` option except that instead of fixing the specified errata, a warning message is issued instead. This option can be used alongside `-msilicon-errata` to generate messages whenever a problem is fixed, or on its own in order to inspect code for potential problems.

`-mP`

  enables polymorph instructions handler.

`-mQ`

  enables relaxation at assembly time. DANGEROUS!

`-ml`

  indicates that the input uses the large code model.

`-mn`

  enables the generation of a NOP instruction following any instruction that might change the interrupts enabled/disabled state. The pipelined nature of the MSP430 core means that any instruction that changes the interrupt state (`EINT`, `DINT`, `BIC #8, SR`, `BIS #8, SR` or `MOV.W <>, SR`) must be followed by a NOP instruction in order to ensure the correct processing of interrupts. By default it is up to the programmer to supply these NOP instructions, but this command-line option enables the automatic insertion by the assembler, if they are missing.

`-mN`

  disables the generation of a NOP instruction following any instruction that might change the interrupts enabled/disabled state. This is the default behaviour.

`-my`

  tells the assembler to generate a warning message if a NOP does not immediately follow an instruction that enables or disables interrupts. This is the default.

  Note that this option can be stacked with the `-mn` option so that the assembler will both warn about missing NOP instructions and then insert them automatically.

`-mY`

  disables warnings about missing NOP instructions.

`-md`

  mark the object file as one that requires data to copied from ROM to RAM at execution startup. Disabled by default.

`-mdata-region=region`

  Select the region data will be placed in. Region placement is performed by the compiler and linker. The only effect this option will have on the assembler is that if upper or either is selected, then the symbols to initialise high data and bss will be defined. Valid region values are:

  `none`
  `lower`
  `upper`
  `either`