#### 3.17.4 Blackfin Options

`-momit-leaf-frame-pointer`
  Don't keep the frame pointer in a register for leaf functions. This avoids the instructions to save, set up and restore frame pointers and makes an extra register available in leaf functions. The option `-fomit-frame-pointer` removes the frame pointer for all functions which might make debugging harder.
`-mspecld-anomaly`
  When enabled, the compiler will ensure that the generated code does not contain speculative loads after jump instructions. This option is enabled by default.
`-mno-specld-anomaly`
  Don't generate extra code to prevent speculative loads from occurring.
`-mcsync-anomaly`
  When enabled, the compiler will ensure that the generated code does not contain CSYNC or SSYNC instructions too soon after conditional branches. This option is enabled by default.
`-mno-csync-anomaly`
  Don't generate extra code to prevent CSYNC or SSYNC instructions from occurring too soon after a conditional branch.
`-mlow-64k`
  When enabled, the compiler is free to take advantage of the knowledge that the entire program fits into the low 64k of memory.
`-mno-low-64k`
  Assume that the program is arbitrarily large. This is the default.
`-mid-shared-library`
  Generate code that supports shared libraries via the library ID method. This allows for execute in place and shared libraries in an environment without virtual memory management. This option implies `-fPIC` .
`-mno-id-shared-library`
  Generate code that doesn't assume ID based shared libraries are being used. This is the default.
`-mshared-library-id=n`
  Specified the identification number of the ID based shared library being compiled. Specifying a value of 0 will generate more compact code, specifying other values will force the allocation of that number to the current library but is no more space or time efficient than omitting this option.
`-mlong-calls`
`-mno-long-calls`
  Tells the compiler to perform function calls by first loading the address of the function into a register and then performing a subroutine call on this register. This switch is needed if the target function will lie outside of the 24 bit addressing range of the offset based version of subroutine call instruction.

  This feature is not enabled by default. Specifying `-mno-long-calls` will restore the default behavior. Note these switches have no effect on how the compiler generates code to handle function calls via function pointers.