MicroBlaze Options (Using the GNU Compiler Collection (GCC))

#### 3.20.29 MicroBlaze Options ¶

`-msoft-float` ¶

  Use software emulation for floating point (default).

`-mhard-float` ¶

  Use hardware floating-point instructions.

`-mmemcpy` ¶

  Do not optimize block moves, use `memcpy`.

`-mcpu=cpu-type` ¶

  Use features of, and schedule code for, the given CPU. Supported values are in the format ‘`vX.YY.Z`’, where X is a major version, YY is the minor version, and Z is compatibility code. Example values are ‘`v3.00.a`’, ‘`v4.00.b`’, ‘`v5.00.a`’, ‘`v5.00.b`’, ‘`v6.00.a`’.

`-mxl-soft-mul` ¶
`-mno-xl-soft-mul`

  Use software multiply emulation. This is enabled by default.

`-mxl-soft-div` ¶
`-mno-xl-soft-div`

  Use software emulation for divides. This is enabled by default.

`-mxl-barrel-shift` ¶

  Use the hardware barrel shifter.

`-mxl-pattern-compare` ¶

  Use pattern compare instructions.

`-msmall-divides` ¶

  Use table lookup optimization for small signed integer divisions.

`-mxl-gp-opt` ¶

  Use GP-relative `.sdata`/`.sbss` sections.

`-mxl-multiply-high` ¶

  Use multiply high instructions for high part of 32x32 multiply.

`-mxl-float-convert` ¶

  Use hardware floating-point conversion instructions.

`-mxl-float-sqrt` ¶

  Use hardware floating-point square root instruction.

`-mbig-endian` ¶

  Generate code for a big-endian target.

`-mlittle-endian` ¶

  Generate code for a little-endian target.

`-mxl-reorder` ¶

  Use reorder instructions (swap and byte reversed load/store).

`-mxl-mode-app-model` ¶

  Select application model app-model. Valid models are

  ‘`executable`’

    normal executable (default), uses startup code `crt0.o`.

  ‘`xmdstub`’

    for use with Xilinx Microprocessor Debugger (XMD) based software intrusive debug agent called xmdstub. This uses startup file `crt1.o` and sets the start address of the program to 0x800.

  ‘`bootstrap`’

    for applications that are loaded using a bootloader. This model uses startup file `crt2.o` which does not contain a processor reset vector handler. This is suitable for transferring control on a processor reset to the bootloader rather than the application.

  ‘`novectors`’

    for applications that do not require any of the MicroBlaze vectors. This option may be useful for applications running within a monitoring application. This model uses `crt3.o` as a startup file.

`-mxl-prefetch` ¶

  Enable insertion of prefetch (`wic`) instructions at call sites.

`-mpic-data-is-text-relative` ¶

  Assume that the displacement between the text and data segments is fixed at static link time. This allows data to be referenced by offset from start of text address instead of GOT since PC-relative addressing is not supported.