×

Control flow management for execution of dynamically translated non-native code in a virtual hosting environment

  • US 8,819,648 B2
  • Filed: 07/20/2012
  • Issued: 08/26/2014
  • Est. Priority Date: 07/20/2012
  • Status: Expired due to Fees
First Claim
Patent Images

1. A computer-performed method for hosting guest program code having a non-native instruction set executing within a host operating system within a virtualized computer system, the method comprising:

  • dynamically translating the guest program code to translated native program code;

    caching pages of the translated native program code in a translated native code page cache;

    executing the translated native program code;

    detecting that a portion of the translated native program code corresponding to a non-native branch instruction will cause the executing to be directed to a particular translated code physical address corresponding to a particular non-native virtual address in a different first non-native virtual memory page than a second non-native virtual memory page containing the non-native branch instruction;

    responsive to detecting that the program control instruction will cause the executing to be directed to the particular translated code physical address, retrieving a record indicating a location of a translated code page containing the particular translated code physical address using the particular non-native virtual address as a key into a host code map that directly maps non-native virtual addresses to translated code physical addresses, wherein the retrieving comprises adding the particular non-native virtual address to a base address of the host code map to obtain a pointer into the host code map corresponding to an address at which the record is stored and de-referencing the pointer to obtain the record;

    loading the translated code page into physical memory; and

    directing the executing to the particular translated code physical address in the translated code page.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×