Patent ID: 8640113

Claim:
A computer-implemented process for check pointing in speculative execution frameworks, the computer-implemented process comprising; identifying a call to a set of setjmp/longjmp instructions, the set of setjmp/longjmp instructions comprising a setjmp and a longjmp pair of instructions; determining a control flow path between a call to the setjmp and the longjmp pair of instructions in the identified call; replacing the call to the setjmp and the longjmp pair of instructions with a call to an improved_setjmp and an improved_longjmp instruction pair; creating a context data structure in memory; computing a non-volatile save/restore set; replacing the call to the improved_setjmp instruction with instructions to save a plurality of required non-volatile registers and a plurality of special purpose registers; and replacing the call to the improved_longjmp instruction with instructions to restore the plurality of required non-volatile registers and the plurality of special purpose registers and to branch to an instruction immediately following a block of code containing the call to the improved_setjmp instruction.