The Object Code Translator (OCT) can be used to analyze CM object
code and to translate the CM object code instructions into NM
precision architecture instructions. Please refer to MPE V to
MPE XL: Getting Started (30367-90002).
Translated object code executes significantly faster than the original CM
code can be emulated.
The object code translator looks at small object code instruction sequences
and translates these individual "sections" of code into a corresponding
NM section of code.
Original CM
Object Code
Translated
Into
CM Instructions NM Instructions
| | | |
+-------------+ ---------> +-------------+
| Orig | | |
| CM | | Translated |
| Section | | NM |
+-------------+ ----+ | Section |
| | |
| | |
+----> +-------------+
| |
|
Each CM object code instruction may expand to several NM instructions
during translation, but the total translated section requires fewer
NM instructions than would be used to emulate the original object
code.
The CM emulator updates CM registers (such as STATUS) during the
emulation of every single instruction.
The OCT may recognize that the STATUS register is not
accessed by a sequence of object code, and so ignore updating
the STATUS register until later, when it is actually referenced.
Performance is improved because unnecessary emulator cycles are saved.
It is important to understand, however,
that during the execution of the resulting
NM section of code, the actual MITROC bit values in the CM STATUS
register may be undefined or incorrect in the middle of the section.
Only at the beginning of each section is the CM state known to be correct.
These "safe" boundaries, between sections, are called node points.