×

Dynamic native binding

  • US 8,091,076 B2
  • Filed: 09/25/2008
  • Issued: 01/03/2012
  • Est. Priority Date: 07/15/2003
  • Status: Active Grant
First Claim
Patent Images

1. A method of translating subject program code executable by a subject processor into target program code executable by a target processor, said method comprising:

  • (a) dividing the subject program code into a plurality of subject program code units;

    (b) translating one or more of the subject program code units into one or more target program code units using a translator executing on the target processor interleaved with execution of the target program code by the target processor; and

    (c) executing the one or more target program code units on the target processor;

    wherein the step (b) further comprises dynamically identifying, by the translator at run-time while the target program code is executing on the target processor, whether at least one of the subject program code units has a corresponding native code unit which is executable natively by the target processor, and, if so, identifying the native code unit which corresponds to the identified subject program code unit, wherein the identified subject program code unit corresponds to a subject function and the identified native code unit corresponds to a native function; and

    wherein the step (c) further comprises executing the corresponding native code unit instead of executing a translated version of the identified subject program code unit comprising;

    transforming in target code all subject register values from the target code representation to the native code representation;

    invoking from target code a native code call stub function with the transformed subject register values according to a uniform call stub interface; and

    invoking from the native code call stub function the native function with particular subject register values and/or parameter stack according to a prototype of the native function.

View all claims
  • 4 Assignments
Timeline View
Assignment View
    ×
    ×