Dynamic translation in the presence of intermixed code and data
First Claim
1. A system for translating software in a first format into a second format, the system comprising:
- a memory containing the software in the first format;
an emulator coupled to the memory configured to translate the software from the first format to the second format; and
a host engine coupled to the emulator and configured to perform instructions in the second format;
wherein the emulator is configured to determine whether a store command in the first format stores information to a memory page that includes instructions and to convert the store instruction to a special store instruction in the event that the target of the store instruction does not contain an instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for translating software in a first format into a second format includes a memory containing the software in the first format and an emulator coupled to the memory configured to translate the software from the first format to the second format. The system also includes a host engine coupled to the emulator and configured to perform instructions in the second format. The emulator is configured to determine whether a store command in the first format stores information to a memory page that includes instructions and to convert the store instruction to a special store instruction in the event that the target of the store instruction does not contain an instruction.
-
Citations
14 Claims
-
1. A system for translating software in a first format into a second format, the system comprising:
-
a memory containing the software in the first format; an emulator coupled to the memory configured to translate the software from the first format to the second format; and a host engine coupled to the emulator and configured to perform instructions in the second format; wherein the emulator is configured to determine whether a store command in the first format stores information to a memory page that includes instructions and to convert the store instruction to a special store instruction in the event that the target of the store instruction does not contain an instruction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for translating code from a first format to a second format, the method comprising:
-
receiving a section of code to be translated from the first format to the second format; determining that a particular instruction is a store instruction; accessing a translation lookaside buffer to determine that the address of the store is present; determining that the store instruction accesses a memory page that includes instructions; generating a code alias trap; accessing a translation cross-reference table and determining that the address contains data and not instructions; and updating the translation for the store instruction to a special store instruction. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for translating software in a first format into a second format, the system comprising:
-
a memory containing the software in the first format; an emulator coupled to the memory configured to translate the software from the first format to the second format; and a host engine coupled to the emulator and configured to perform instructions in the second format; wherein the emulator is configured to speculatively use store commands in the first format, maintaining a table of such stores created and the destination addresses of such stores and convert them to special store commands in the second format in the event that subsequent execution branches to the location which is the destination of the store command with this replacement being performed before execution of the code at said destination location.
-
Specification