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.
| 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:
|
| 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. |