|
The Green Hills Optimizing Compiler for x86/Pentium utilizes 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.
- 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.
- Calling Convention Compatibility - Fully compatible with
both Microsoft standard and C calling conventions.
- Hardware Coprocessor—In hardware floating-point (HFP)
mode, the compiler uses floating-point registers to hold floating-point
data and to perform floatingpoint operations.
- Floating-Point Built-Ins—Controls the use of floating-point
intrinsics, such as FABS, FSQRT, and FSIN.
- Placement of Zero-Initialized Data—Controls the allocation
of variables and arrays explicitly initialized to zero. Allocating
such objects to an uninitialized section will generally reduce the
size of the executable ROM image.
Run-time 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.
Compliance with Industry Standards
Green Hills C/C++ Compilers fully
conform to ANSI/ISO industry standards, and include optional enforcement of
MISRA C programming guidelines.
Common Tools for Native and Embedded Configurations
MULTI offers flexibility in native and embedded configurations using x86/Pentium
processors while maintaining a common interface for project creation and
debug. All of the advanced features of MULTI for native development seamlessly
transfer to embedded development. This enables users to prototype embedded
applications early in the development cycle when silicon is unavailable.
No time is wasted in learning a new development environment or rewriting code
when switching between embedded and native configurations. The language front
ends of the Green Hills compilers are the same for both native and embedded
development, guaranteeing absolute language compatibility when you recompile
programs developed on your host for your embedded target.
|