4.7.2 Port Specific Options
Keywords: sdccman

Subsections

- 4.7.2.1 Code Generation Options
- 4.7.2.2 Optimization Options
- 4.7.2.3 Assembling Options
- 4.7.2.4 Linking Options
- 4.7.2.5 Debugging Options

##
4.7.2 Port Specific Options

The port specific options appear after the global options in the sdcc —help output.

### 4.7.2.1 Code Generation Options

These options influence the generated assembler code.

—pstack-model=[model]
  Used in conjunction with the command above. Defines the stack model to be used, valid stack models are:

  - [small] Selects small stack model. 8 bit stack and frame pointers. Supports 256 bytes stack size.
  - [large] Selects large stack model. 16 bit stack and frame pointers. Supports 65536 bytes stack size.
—pno-banksel
  Do not generate BANKSEL assembler directives.
—extended
  Enable extended instruction set/literal offset addressing mode. Use with care!

### 4.7.2.2 Optimization Options

—obanksel=n
  Set optimization level for inserting BANKSELs.

  - [0] no optimization
  - [1] checks previous used register and if it is the same then does not emit BANKSEL, accounts only for labels.
  - [2] tries to check the location of (even different) symbols and removes BANKSELs if they are in the same bank.
    Important: There might be problems if the linker script has data sections across bank borders!
—denable-peeps
  Force the usage of peepholes. Use with care.
—no-optimize-goto
  Do not use (conditional) BRA instead of GOTO.
—optimize-cmp
  Try to optimize some compares.
—optimize-df
  Analyze the dataflow of the generated code and improve it.

### 4.7.2.3 Assembling Options

—asm=
  Sets the full path and name of an external assembler to call.
—mplab-comp
  MPLAB compatibility option. Currently only suppresses special gpasm directives.

### 4.7.2.4 Linking Options

—link=
  Sets the full path and name of an external linker to call.
—preplace-udata-with=[kword]
  Replaces the default udata keyword for allocating unitialized data variables with [kword]. Valid keywords are: udata_acs, udata_shr, udata_ovr.
—ivt-loc=n
  Place the interrupt vector table at address n. Useful for bootloaders.
—nodefaultlibs
  Do not link default libraries when linking.
—use-crt=
  Use a custom run-time module instead of the default (crt0i).
—no-crt
  Don't link the default run-time modules

### 4.7.2.5 Debugging Options

Debugging options enable extra debugging information in the output files.

—debug-xtra
  Similar to —debug, but dumps more information.
—debug-ralloc
  Force register allocator to dump <source>.d file with debugging information. <source> is the name of the file being compiled.
—pcode-verbose
  Enable pcode debugging information in translation.
—calltree
  Dump call tree in .calltree file.
—gstack
  Trace push/pops for stack pointer overflow.