Patent ID: 7676796
Filing Date: 2010-03-09
Classification: G06F

Abstract:
1. A method comprising: executing an instrumented software program having a plurality of segments; maintaining a pre-defined number of free registers during execution of the instrumented software program, such that at each point during execution of a segment, the segment has access to at least the pre-defined number of free registers; partitioning the instrumented software program into regions, wherein each region is associated with a pre-defined number of not accessed registers, and wherein the pre-defined number of not accessed registers is a maximum number of registers used by an instrumentation fragment plus one; allocating a spill area for a pre-defined number of registers per thread of execution while first entering a region; spilling the registers associated with the region into the spill area, wherein spilling the registers comprises storing register values in the spill area; using the spilled registers as free registers while execution is in the region, wherein using the spilled registers comprising using one or more of the spilled registers as a pointer to the spill area; restoring the register values of the pre-defined number of registers when execution passes from the region; and de-allocating the spill area when execution reaches a non instrumented code.