Machine-adaptable dynamic binary translation

Dynamic binary translation is the process of translating and optimizing executable code for one machine to another at runtime, while the program is “executing” on the target machine. Dynamic translation techniques have normally been limited to two particular machines; a competitor's machine and the hardware manufacturer's machine. This research provides for a more general framework for dynamic translations, by providing a framework based on specifications of machines that can be reused or adapted to new hardware architectures. In this way, developers of such techniques can isolate design issues from machine descriptions and reuse many components and analyses. We describe our dynamic translation framework and provide some initial results obtained by using this system.

[1]  Cristina Cifuentes,et al.  SRL-a simple retargetable loader , 1997, Proceedings of Australian Software Engineering Conference ASWEC 97.

[2]  Richard L. Sites,et al.  Binary translation , 1993, CACM.

[3]  Mendel Rosenblum,et al.  Embra: fast and flexible machine simulation , 1996, SIGMETRICS '96.

[4]  Ali-Reza Adl-Tabatabai,et al.  Fast, effective code generation in a just-in-time Java compiler , 1998, PLDI.

[5]  Shane Sendall,et al.  Specifying the semantics of machine instructions , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[6]  David Keppel,et al.  Shade: a fast instruction-set simulator for execution profiling , 1994, SIGMETRICS.

[7]  Norman Ramsey,et al.  The design of a resourceable and retargetable binary translator , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[8]  Dawson R. Engler,et al.  tcc: a system for fast, flexible, and high-level dynamic code generation , 1997, PLDI '97.

[9]  Norman Ramsey,et al.  The New Jersey Machine-Code Toolkit , 1995, USENIX.

[10]  Doug Simon,et al.  Preliminary experience with the use of the UQBT binary translation framework , 1999, PACT 1999.

[11]  Norman Ramsey,et al.  Specifying representations of machine instructions , 1997, TOPL.

[12]  Bich C. Le,et al.  An out-of-order execution technique for runtime binary translators , 1998, ASPLOS VIII.