Object Code Accelerator Manual
Object Code Accelerator Manual—528144-003
1-1
1 Introduction
OCA processes TNS object code to produce accelerated object code. On TNS/E
systems, accelerated object code runs significantly faster than TNS object code. This
section describes how OCA works, how to determine which programs to accelerate,
and the cost in time and space to accelerate your programs.
How the Object Code Accelerator (OCA) Works
OCA takes as input an executable TNS object file and produces as output an
accelerated object file. The accelerated object file contains both the original TNS code
and the logically equivalent optimized Itanium instructions (accelerated object code).
Figure 1-1, The Acceleration Process, on page 1-1 illustrates the acceleration process.
OCA produces for each TNS instruction its functional equivalent on the TNS/E system,
in the form of either:
•
A sequence of zero or more (usually more than one) Itanium instructions
•
A call on a millicode routine
In the first and more common case, OCA treats a TNS instruction as though it were a
macro instruction, expanding it into Itanium instructions. In the second, OCA treats a
TNS instruction as though it were a call on a closed subroutine, referred to as a
millicode routine. Millicode routines are sets of Itanium instructions that implement
various complex TNS instructions and low-level functions such as exception handling,
real-time translation routines, and floating-point and quad arithmetic. Millicode is
functionally equivalent to TNS microcode.
OCA can produce only optimized Itanium instructions for TNS instruction sequences
whose exact meaning can be determined before runtime. In cases where the exact
meaning cannot be determined until run time, the program makes a transition into TNS
code and executes the original TNS instructions.
Figure 1-1. The Acceleration Process
Accelerated Object File
TNS
Compiler
TNS
Object Code
TNS Object File
OCA
TNS
Object Code
Accelerated
Object Code
VST0101.vsd