Japanese
GHS Products
68K, ColdFire, CPU32 Optimizing Compilers
68K, ColdFire, CPU32 Family | MULTI for 68K, ColdFire, CPU32 | GHS Compiler | MULTI | GHProbe
Optimizing Compilers
The Green Hills Optimizing Compilers for 68K/ColdFire/CPU32 all utilize a common code generator with architecture-specific optimizations. Each supported processor 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 68K/ColdFire/CPU32-specific features are supported:
Processor - One option for each supported 68K/ColdFire/CPU32 model. This setting determines the instructions permitted, as well as the pipeline optimization strategy used.
Use built-in fp functions - Uses built-in floating point instructions rather than calling library functions such as fabs(), sqrt(), and sin().
Truncate fp expressions - In 68881/68882 and 68040 mode, the compiler stores all single and double precision floating point variables and values in memory to ensure precise truncation.
Enable 68851 Support - Enables use of a 68851 memory management unit.
MAC/EMAC Support - Fully supports Motorola's Multiply and Accumulate and Enhanced Multiple and Accumulate instructions. Built-in functions allow programmers to easily write optimized MAC/EMAC code using C constructs.
Small Data Area (SDA) - The Green Hills Compilers can collect frequently accessed variables into a block of up to 64KB of memory. This enables efficient access to data within this block resulting in improved code size.
Long Long Support - Fully supports 64-bit data types, constants, and expressions through the long long data type.
Position Independent Code (PIC) and Data (PID) - Allows executable files and data to be placed anywhere in memory and still run correctly
Large Switch Statements - Allows for large switch statements by forcing the compiler to use a 32-bit offset, which works regardless of the destination label.
Optimizing Assembler - Assembler will optimize branch and call instructions to use the smallest possible displacement, improving code size.
Pop stack args often - This option forces a stack adjustment after each subroutine call. This stops stack frames from growing too large at the expense of generating more code.
Run-Time libraries
A comprehensive suite of run-time libraries for C, C++, EC++, and Ada 95 are included in the corresponding compiler distributions for each language. Several different versions of the libraries are provided to accommodate different combinations of processor and memory models. The combinations include hardware vs. software floating point, big endian vs. little endian memory models and CPU specific versions. Full featured start-up code and libraries include automatic copy of data from ROM to RAM and system call emulation. Source code to the run-time libraries is available so that users can customize routines according to the special needs of their applications.
The MULTI Integrated Development Environment
MULTI provides a host-based (Windows, Solaris, HP-UX or Linux workstation) graphical environment for 68K/ColdFire/CPU32 target development. Host-target connectivity is provided through a variety of means, depending on the target environment. MULTI supports many 68K/ColdFire/CPU32 targets, including evaluation boards from Motorola Computer Group and Motorola's Semiconductor operations. These boards can be accessed with a variety of interfaces:
Bare Board Access (No RTOS or ROM Monitor) - Most ColdFire and CPU32-based boards offer an On-Chip Debugging (OCD) interface, such as BDM, JTAG, and OnCE. MULTI uses these OCD interfaces through a Macraigor or P&E "Wiggler" connection or through Agilent Technologies' Emulation Probe or In-Circuit Emulator (ICE) via Ethernet or Serial. MULTI provides a complete software package that enables programmers to debug code without need for operating systems, kernels, or even ROM monitors.
ROM Monitor - MULTI supports 68000, ColdFire, and CPU32 targets running the GHSmon monitor.
Commercial RTOS Support - MULTI supports 68K/ColdFire/CPU32 boards running ThreadX from Green Hills Software, Tornado/VxWorks from Wind River Systems and ChorusOS? from Sun Microsystems. In all cases, MULTI provides multitask-aware debugging. Special commands allow tasks to be stopped upon system events such as task creation.
Custom RTOS Support - MULTI can be interfaced with a custom RTOS through integration of the Green Hills INDRT API. INDRT provides all the debug information needed by MULTI, and is easily integrated into user code.
Instruction Set Simulator -The Sim68 instruction set simulator interpretively executes ColdFire programs on the host PC or workstation without the need for target hardware by simulating the execution of the target processor at the instruction level. Sim68 provides full debug features, host I/O, command window, extended profiling and hardware breakpoints.