1. A computer-implemented method for executing a target program in a computer system, comprising: compiling code of said target program for execution on a computer system processor to produce an executable target program having original executable code, said processor having a set of N registers available for use by programs executed by the processor, wherein N≧2, each register of said set of N registers being assignable during compilation of said programs to program variables used by said programs; reserving, during said compiling code of said target program, at least one register of said set of N registers for later use by a dynamic binary optimizer during execution of said target program, wherein the number of registers of said set of N registers assignable by compiling code of said target program to program variables used by said target program is no more than N less the number of registers of said set of N registers which are reserved; and executing said executable target program with a dynamic binary optimizer which generates dynamically optimized executable code replacing said original executable code of at least one portion of said target program, said dynamic binary optimizer using said at least one register of said set of N registers which is reserved during execution of said target program to hold address information for a context save area to which register contents are saved when said dynamic binary optimizer switches execution between execution of said original executable code of said target program and said dynamically optimized executable code of said target program.