Patents Assigned to Transitive Limited
-
Patent number: 7346900Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. The intermediate representation is generated to include a combination of register objects and expression objects. Register objects represent abstract registers that provide a representation of the state of the first programmable machine based on expected effects of the instructions within the first program code, while expression objects represent elements, such as operations or sub-operations, of the instructions in the first program code. In the intermediate representation, a branched tree-like network is formed in which each register object serves as a basic root of the network and references expression objects to which they relate either directly or indirectly through references from other expression objects.Type: GrantFiled: June 6, 2002Date of Patent: March 18, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7328431Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: February 5, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20080005724Abstract: A target computing system performs program code conversion from subject code, executable by a subject computing architecture, into target code executable by the target computing system, and then executes the target code. The target system handles exceptions during binding to native code. Native code binding executes a portion of native code in place of translating a portion of the subject code into the target code. Upon an exception during execution of the portion of native code, the target system saves a target state representing a current point of execution for the portion of native code, and creates a subject state representing an emulated point of execution in the subject architecture. A subject exception handler handles the exception with reference to the subject state. Upon resuming execution from the exception using the subject state, the saved target state is restored to resume execution in the section of portion of native code.Type: ApplicationFiled: June 19, 2007Publication date: January 3, 2008Applicant: Transitive LimitedInventors: Gavin Barraclough, Kit Wan, Abdul Hummaida
-
Publication number: 20070294675Abstract: A method of handling exceptions during native binding under program code conversion from subject code (17) executable by a subject computing architecture to target code (21) executable by a target computing architecture. Performing native binding executes a portion of native code (28) in place of translating a portion of the subject code (17) into the target code (21). When an exception occurs during the portion of native code (28), the method comprises saving a target state (T?) which represents a current point of execution in the target computing architecture for the portion of native code (28), and creating a subject state (S?) which represents an emulated point of execution in the subject computing architecture.Type: ApplicationFiled: October 10, 2006Publication date: December 20, 2007Applicant: Transitive LimitedInventors: Gavin Barraclough, Kit M. Wan, Abdul R. Hummaida
-
Patent number: 7299170Abstract: A high precision floating point emulator and associated method for emulating subject program code on a target machine where the subject machine base operands possess a different precision than the target machine. The high precision floating point emulator is provided for the emulation of subject program code instructions having a higher precision than that supported by the target machine architecture by utilizing intermediate calculations having values with a higher precision than that supported by the target machine.Type: GrantFiled: December 2, 2003Date of Patent: November 20, 2007Assignee: Transitive LimitedInventor: Paul Walker
-
Publication number: 20070256063Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: ApplicationFiled: March 27, 2007Publication date: November 1, 2007Applicant: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20070250824Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: ApplicationFiled: March 27, 2007Publication date: October 25, 2007Applicant: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20070106983Abstract: An improved architecture for a program code conversion apparatus and method for generating intermediate representations for program code conversion. The program code conversion apparatus determines which types of IR nodes to generate in an intermediate representation (IR) of subject code (10) to be translated. Depending upon the particular subject and target computing environments involved in the conversion, the program code conversion apparatus utilizes either base nodes, complex nodes, polymorphic nodes, and architecture specific nodes, or some combination thereof, in generating the intermediate representation.Type: ApplicationFiled: November 6, 2006Publication date: May 10, 2007Applicant: Transitive LimitedInventors: Daniel Owen, Jonathan Andrews, Miles Howson, David Haikney
-
Patent number: 7210133Abstract: A program storage medium storing an emulation system for performing dynamic real time translation of first program code written for the first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: April 24, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7203636Abstract: A method for emulating a processor of a first endian type on a processor of a second endian type, wherein each memory access address B of string length L is transformed to the address A?B?L+S, wherein A is the total number of bytes allocated to a program, and S is the start address of the program.Type: GrantFiled: April 6, 2001Date of Patent: April 10, 2007Assignee: Transitive LimitedInventor: John H. Sandham
-
Patent number: 7203933Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: April 6, 2001Date of Patent: April 10, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7203934Abstract: A combination of a first programmable machine and an emulation system operable to perform dynamic real time translation of first program code written for the first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: April 10, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7200841Abstract: An improved method and apparatus for performing program code conversion is provided and, more particularly, for generating improved intermediate representations for use in program code conversion. During program code conversion, a partial dead code elimination optimization technique is implemented to identify partially dead register definitions within a block of program code being translated. The partial dead code elimination is an optimization to the intermediate representation in the form of code motion for blocks of program code ending in non-computed branches or computed jumps, where target code for all dead child nodes of a partially dead register definition is prevented from being generated and target code for partially dead child nodes of a partially dead register definition is delayed from being generated until after target code is generated for all fully live child nodes for the partially dead register definition.Type: GrantFiled: December 12, 2003Date of Patent: April 3, 2007Assignee: Transitive LimitedInventors: William Owen Lovett, Alex Brown, Gavin Barraclough
-
Publication number: 20070006184Abstract: In program code conversion, particularly dynamic binary translation, subject code 17 is translated into target code 21 through a translator 19 for execution on a target processor 13. Selected portions of subject code, such as library functions SFuncA 172, are replaced by instead executing a portion of native code such as a native function NFuncA 282. The native function is native to the target processor 13. The method further includes executing a subject code portion such as a subject function SFuncB 173 in place of a native code portion such library function NFuncB 283. This reverse binding technique substitutes subject code for selected portions of the native code, particularly native library functions in order to keep control within the translator 19. This helps to maintain an accurate subject state in the translator 19, amongst other advantages.Type: ApplicationFiled: November 14, 2005Publication date: January 4, 2007Applicant: Transitive LimitedInventors: Jonathan Andrews, Geraint North
-
Publication number: 20060277532Abstract: A dynamic binary translator 19 converts a subject program 17 into target code 21 on a target processor 13. For a multi-threaded subject environment, the translator 19 provides a global token 501 common to each thread 171, 172, and one or more sets of local data 502, which together are employed to coordinate access to a memory 18 as a shared resource. Adjusting the global token 501 allows the local datastructures 502a,b in each thread to detect potential interference with the shared resource 18.Type: ApplicationFiled: September 2, 2005Publication date: December 7, 2006Applicant: Transitive LimitedInventors: Gavin Barraclough, Paul Knowles
-
Publication number: 20060253691Abstract: Precise exception handling relies on a precise subject state including an accurate program counter and register values of a subject processor. Subject code (17) is translated into target code (21) executable by a target processor (13). The generated target code (17) includes counterpart target instructions (214) associated with fault-vulnerable subject code instructions (174). Further, each of the counterpart target code instruction (214) is associated with recovery information (195). When an exception (e.g. a fault) occurs, the recovery information (195) is retrieved and used to recover a precise subject state, in particular by taking account of optimizations to generate the common-case target code (21). The precise subject state is then used to precisely handle the exception.Type: ApplicationFiled: November 14, 2005Publication date: November 9, 2006Applicant: Transitive LimitedInventors: Gavin Barraclough, Kit Wan, Abdul Hummaida