Efficient Dual-ISA Support in a Retargetable, Asynchronous Dynamic Binary Translator Tom Spink, Harry Wagstaff, Björn Franke and Nigel Topham Institute for Computing Systems Architecture School of Informatics, University of Edinburgh
[email protected],
[email protected],
[email protected],
[email protected] Abstract—Dynamic Binary Translation (DBT) allows software compilation task farm [2], each JIT compilation worker may compiled for one Instruction Set Architecture (ISA) to be executed independently change its target ISA based on the encoding of on a processor supporting a different ISA. Some modern DBT the code fragment it is operating on. Most DBT systems [3], systems decouple their main execution loop from the built-in [4], [5], [6], [7], [8], [9], [1], [10], [11], [12], [13], [14], [15] Just-In-Time (JIT) compiler, i.e. the JIT compiler can operate avoid dealing with this added complexity and do not provide asynchronously in a different thread without blocking program support for dual-ISAs at all. A notable exception is the ARM execution. However, this creates a problem for target architectures EMU RM HUMB with dual-ISA support such as ARM/THUMB, where the ISA of the port of Q [16], which supports both A and T currently executed instruction stream may be different to the one instructions, but tightly couples its JIT compiler and main processed by the JIT compiler due to their decoupled operation execution loop and, thus, misses the opportunity to offload and dynamic mode changes. In this paper we present a new the JIT compiler from the critical path to a separate thread.