Patent ID: 7793272
Filing Date: 2010-09-07
Classification: G06F

Abstract:
1. A method of executing program code during conversion of subject code executable by a subject processor into target code executable by a target processor, in combination with native code that is natively executable by the target processor, said method comprising the steps of: executing a first subject code portion on the target processor as translated target code; calling from the first subject code portion to execute a native code portion natively on the target processor; dynamically determining whether to execute either a second subject code portion or a second native code portion when both the second subject code portion and the second native code portion are available to be executed, wherein the determining comprises determining if a reverse bind point description exists; and providing to a translator the reverse bind point description which includes (a) an identification of a native function of the second native code portion to be reverse bound, and (b) an identification of a subject function of the second subject code portion to be called in substitution for the native function; providing a link from the native code portion to the second native code portion if there is no reverse bind point description, or else providing a link from the native code portion to the second subject code portion by inserting in the native code portion a reverse call stub to the identified subject function of the second subject code portion when encountering the identified native function of the second native code portion; calling from the second native code portion to execute the second subject code portion as translated target code; returning from execution of the second subject code portion to execution of the second native code portion; returning from execution of the second native code portion to execution of the native code portion; and returning from execution of the native code portion to execution of the first subject code portion.