This window applies to the most up-to-date V800 toolset which uses ELF as the default format and version 1.8.9 compilers. To use the previous generation of tools and COFF or ELF format, either use the V805/V810/V820/V830 window or the V850/V851 window.
To change the target processor to a different member of the V800 series, change the entry in the Target box in the main Builder window. Do not change the processor field in this window.
Generates code for the selected instruction set. Equivalent to executing the corresponding processor specific compiler driver from the command line.
Generates code using the floating point capabilities of the selected processor.
Rejects any use of floating point variables or constants in C, C++, or Pascal. Equivalent to the -fnone build-time option.
Allocates a small area of Tiny Data Area (TDA) memory to hold small data objects and reference objects in that area using a base pointer register (r30) and short load and store instructions. The total size of the Tiny Data Area is limited to 4K. Please refer to the "Tiny Data Area Optimization" chapter in the Embedded V800 Development Guide for more information.
You need to specify which TDA model to enable. Because TDA is enabled only through #pragma by default, no objects are placed in the TDA.
No TDA. The compiler uses the TDA base register r30 as a normal temporary register.
Enables the Multiple TDA model.
The following are descriptions of the check boxes and text fields in the V800 window:
The compiler reserves r2 for the user. This is the default. If the box is set to "-", the compiler uses r2 as a temporary register. Equivalent to the -reserve_r2 command line option.
The compiler reserves r5 for the user. This is the default. If the box is set to "-", the compiler uses r5 as a temporary register. Equivalent to the -reserve_r5 command line option.
Reserve r15-r24 for the user (22 register mode)
Generates code in 22 register mode. Default is 32 register mode. Equivalent to the -cpu=v800_22 V800 specific option.
Reserve r17-r22 for the user (26 register mode)
Generates code in 26 register mode. Default is 32 register mode. Equivalent to the -cpu=v800_26 V800 specific option.
The compiler assumes that r20 contains the value 255 and uses r20 instead of 255 during code generation. r20 should be initialized in the startup code. Equivalent to the -r20has255 command line option.
Constant value 255 is in r20 and 65535 is in r21
The compiler assumes that r20 contains the value 255 and r21 contains the value 65535. The compiler will use r20 and r211 instead of 255 and 65535 during code generation. r20 and r21 should be initialized in the startup code. Equivalent to the -r21has65535 command line option.
Generates position independent code. Equivalent to the -pic PIC option.
Generates position independent data. Equivalent to the -pid PID option.
Generates register-indirect calls ("far"-calls) for user functions. The default is not to generate far calls, but to use PC-relative calls. Equivalent to the -farcalls command line option.
Forces the compiler to generate function prologue and epilogue code inline. The alternative is to call routines in the Green Hills libraries to save and restore registers and allocate stack space for locals. This option is on by default for unoptimized code, or when not optimizing for small code size.
Do not use V850E callt instruction
Prevents the compiler from generating the CALLT instruction on the V850E. Also causes the linker to use a different set of libraries which also do not use the CALLT instruction.
Small Data or Zero Data threshold
Specifies a size in bytes to determine which data objects appear in the Small or Zero Data Areas. By default, objects less than 8 bytes are placed in Small Data Area (i.e., the default small data area threshold is 8), and no objects are placed in Zero Data Area (i.e, the default zero data area threshold is 0). Equivalent to the -sda= and -zda= special data area options.
See the Development Guide for more information on the SDA and ZDA optimizations.
Puts variables smaller than threshold into the Data Area.
Allocates an area of memory to hold data objects smaller than the Small Data Threshold and references objects in that area using r4 as the base pointer register. Equivalent to the -sda Small Data Area option.
Allocates an area of memory to hold data objects smaller than the Zero Data Threshold and references objects in that area using r0 as the base pointer register. This improves program size and speed because addressing an object via the Small/Zero data area base register uses fewer instructions. The total size of the Small/Zero data area is limited to 64k; large applications may not be able to take advantage of this feature. Equivalent to the -zda special data area option.