|
|
|
|
|
|
|
x86/Pentium Optimizing Compilers
|
|
The Green Hills Optimizing Compilers for x86/Pentium all utilize a common code generator with architecture-specific optimizations. Each supported x86/Pentium model has its own particular pipeline and instruction set characteristics. These are accommodated in the code generator to produce code best suited for the target processor. The following x86/Pentium-specific features are supported:
|
|
|
|
|
Processor - One option for each supported x86/Pentium model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
|
|
|
|
|
fprecise - Stores all floating point calculations in memory to ensure precise truncation. Fully compatible with the GNU convention for handling floating point comparisons, including comparisons that involve NANs.
|
|
|
|
|
Calling Convention Compatibility
- Fully compatible with the GNU calling convention.
|
|
|
|
|
ffunctions - Enables the compiler to use the 387 hardware instructions for certain floating point functions instead of calling them in the library.
|
|
|
|
|
Long Long Support - Fully supports 64-bit data types, constants, and expressions through the long long data type.
|
|
|
|
|
Run-Time Error Checking Libraries
|
|
A comprehensive suite of error-checking libraries for C, C++, EC++, and Ada 95 are included in the corresponding compiler distributions for each language. Some checks include reading, writing, or freeing unallocated memory; accessing an element beyond the bounds of a declared array; and NULL pointer dereferencing. Customization of error-checking libraries allows programmers to access this functionality through the MULTI IDE, or through a command line interface.
|
|
|
|
|
|
|
|
The MULTI Integrated Development Environment
|
|
MULTI is a complete integrated development environment for embedded applications using C, C++, EC++, Ada 95, and FORTRAN languages. MULTI provides a direct graphical interface with all Green Hills optimizing compilers, and supports multi-language development and debugging. MULTI contains all of the tools you need to complete a major programming project:
|
|
|
|
|
Source Level Debugger
|
|
Project Builder
|
|
Language-Sensitive Text Editor
|
|
Version Control System
|
|
Graphical Browser
|
|
Performance Profiler*
|
|
Run-Time Error Checking
|
|
Code Coverage Analysis
|
|
|
|
|
MULTI provides a host-based (UNIX workstation) graphical environment for x86/Pentium target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports various recent versions of the Linux Red Hat operating system.
|
|
|
|
|
Attach to running process - MULTI can open a new debugger window on a running process.
|
|
|
|
|
Advanced Fork Debugging - When a process forks (as with a UNIX fork() call), MULTI automatically opens a new debugger window on the child process. This enables simultaneous debugging of both the parent and the child processes.
|
|
|
|
|
Performance Profiler - MULTI collects and graphically displays profiling information, such as the amount of time spent in each function, and the number of calls to a function.
|
|
|
|
|
Multiple Task Debugging - MULTI provides multitask-aware debugging. Special commands allow tasks to be stopped upon system events such as task creation.
|
|
|
|
|
Code Coverage Analysis - MULTI identifies areas of code that have or have not been executed.
|
|
|
|
|
Memory Leak Detection - MULTI detects dyamically allocated memory blocks not referenced by any program pointer and displays this information as memory leaks.
|
|
|
|
|
Dynamic Load - MULTI has the ability to detect when new shared objects are loaded into an applications address space and automatically load the debugging information for those shared objects.
|
|
|
|
|
|
|