RS08 Compiler > Code Generation

Use this panel to specify code- and symbol-generation options for the RS08 Compiler

The following table lists and describes the code generation options for RS08 compiler.

Table 1. Tool Settings - RS08 Compiler > Code Generation Options
Option Description
Bit field byte allocation (-BfaB[MS|LS]) Normally, bits in byte bitfields are allocated from the least significant bit to the most significant bit. This produces less code overhead if a byte bitfield is allocated only partially.
Bit field gap limit (-BfaGapLimitBits) Check to affect the maximum allowable number of gap bits. The bitfield allocation tries to avoid crossing a byte boundary whenever possible. To optimize accesses, the compiler may insert some padding or gap bits.
Bit field type size reduction This option is configurable whether or not the compiler uses type-size reduction for bitfields. Type-size reduction means that the compiler can reduce the type of an int bitfield to a char bitfield if it fits into a character. This allows the compiler to allocate memory only for one byte instead of for an integer. Options are:
  • Enabled (-BfsTSRON)
  • Disabled (-BfsTSOFF)
Maximum load factor for switch tables (0-100) (-CswMaxLF) Allows changing the default strategy of the Compiler to use tables for switch statements; is only available if the compiler supports switch tables.
Minimum number of labels for switch tables (-CswMinLB) Allows changing the default strategy of the Compiler using tables for switch statements; is only available if the compiler supports switch tables.
Minimum load factor for switch tables (0-100) (-CswMinLF) Allows the Compiler to use tables for switch statements; is only available if the compiler supports switch tables.
Minimum number of labels for switch search tables (-CswMinSLB) Allows the Compiler to use tables for switch statements. Using a search table improves code density, but the execution time increases. Every time an entry in a search table must be found, all previous entries must be checked first. For a dense table, the right offset is computed and accessed. In addition, note that all backends implement search tables (if at all) by using a complex runtime routine. This may make debugging more complex.
Switch off code generation (-Cx) Disables the code generation process of the Compiler. No object code is generated, though the Compiler performs a syntactical check of the source code. This allows a quick test if the Compiler accepts the source without errors.
Do not use CLR for volatile variables in the direct page (-NoClrVol) Inhibits the use of CLR for volatile variables in the direct page. The CLR instruction on HC08 has a read cycle. This may lead to unwanted lateral effects (e.g. if the variable is mapped over a hardware register).
Qualifier for virtual table pointers (-Qvtp) Using a virtual function in C++ requires an additional pointer to virtual function tables. The Compiler cannot access the pointer and generates the pointer in every class object when virtual function tables are associated.
Use IEEE32 for double Check to use IEEE32 for doubles instead of IEEE64 (default).
Specify the address of the Interrupt Exit address register (-IEA) Specifies the address of the interrupt exit address register. By default, it is 0x200.
Specify the address of the System Interrupt Pending 2 register (-SIP2) Specifies the address of the System Interrupt Pending 2 register. By default, it is set to 0x1D.