An apparatus comprising: a memory; a hardware buffer; and a processor configured to: convert guest code to native code; store converted guest code into a code cache of the processor; maintain the hardware buffer configured for tracking respective locations of converted code in the code cache, wherein the hardware buffer is updated based on a respective access to a respective location in the memory associated with a respective location of converted code in the code cache; and perform a request to modify the respective location in the memory after updating the hardware buffer, wherein the memory comprises a table associated with the hardware buffer for tracking converted code present in the code cache including one or more of tracking modifications to guest code, tracking a type of exception to take in response to modifications to guest code, and tracking whether the guest code has been converted to native code; wherein updating the hardware buffer includes determining if the hardware buffer includes an entry corresponding to the respective location in the memory, wherein, if the entry does not exist in the hardware buffer, a determination is made if the entry exists in the table, and wherein, if the entry does not exist in the table, the entry is created in the hardware buffer, and is updated to indicate that the respective location was not converted and not modified. a memory; a hardware buffer; and a processor configured to: convert guest code to native code; store converted guest code into a code cache of the processor; maintain the hardware buffer configured for tracking respective locations of converted code in the code cache, wherein the hardware buffer is updated based on a respective access to a respective location in the memory associated with a respective location of converted code in the code cache; and perform a request to modify the respective location in the memory after updating the hardware buffer, wherein the memory comprises a table associated with the hardware buffer for tracking converted code present in the code cache including one or more of tracking modifications to guest code, tracking a type of exception to take in response to modifications to guest code, and tracking whether the guest code has been converted to native code; convert guest code to native code; store converted guest code into a code cache of the processor; maintain the hardware buffer configured for tracking respective locations of converted code in the code cache, wherein the hardware buffer is updated based on a respective access to a respective location in the memory associated with a respective location of converted code in the code cache; and perform a request to modify the respective location in the memory after updating the hardware buffer, wherein the memory comprises a table associated with the hardware buffer for tracking converted code present in the code cache including one or more of tracking modifications to guest code, tracking a type of exception to take in response to modifications to guest code, and tracking whether the guest code has been converted to native code; wherein updating the hardware buffer includes determining if the hardware buffer includes an entry corresponding to the respective location in the memory, wherein, if the entry does not exist in the hardware buffer, a determination is made if the entry exists in the table, and wherein, if the entry does not exist in the table, the entry is created in the hardware buffer, and is updated to indicate that the respective location was not converted and not modified.