### 4.6 `ld` and the MIPS family

The ‘`--insn32`’ and ‘`--no-insn32`’ options control the choice of microMIPS instructions used in code generated by the linker, such as that in the PLT or lazy binding stubs, or in relaxation. If ‘`--insn32`’ is used, then the linker only uses 32-bit instruction encodings. By default or if ‘`--no-insn32`’ is used, all instruction encodings are used, including 16-bit ones where possible.

The ‘`--ignore-branch-isa`’ and ‘`--no-ignore-branch-isa`’ options control branch relocation checks for invalid ISA mode transitions. If ‘`--ignore-branch-isa`’ is used, then the linker accepts any branch relocations and any ISA mode transition required is lost in relocation calculation, except for some cases of `BAL` instructions which meet relaxation conditions and are converted to equivalent `JALX` instructions as the associated relocation is calculated. By default or if ‘`--no-ignore-branch-isa`’ is used a check is made causing the loss of an ISA mode transition to produce an error.