Binder Manual (G06.24+, H06.03+)
Introduction
Binder Manual—528613-003
1-6
The Object Code Accelerator (OCA)
The Object Code Accelerator (OCA)
This section contains a general introduction to OCA; for more details see the Object
Code Accelerator Manual.
OCA processes TNS object code to produce accelerated object code. On TNS/E
systems, accelerated object code runs significantly faster than TNS object code.
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).
This process is illustrated in Figure 1-3, The Acceleration Process.
For each TNS instruction OCA produces 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 case, 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. When 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-3. The Acceleration Process
Accelerated Object File
TNS
Compiler
TNS
Object Code
TNS Object File
OCA
TNS
Object Code
Accelerated
Object Code
VST0101.vsd