1. A method of preserving exceptions in code reordering, the method comprising: determining if a first instruction of a plurality of instructions is an excepting instruction; determining if the first instruction is to be moved across a check instruction to an execution location that is before the check instruction; determining, with a processor, a second instruction in the plurality of instructions that computes a previous value of a target register associated with the first instruction when (1) the first instruction is not an excepting instruction and (2) the first instruction is to be moved across a check instruction to an execution location that is before the check instruction; and inserting, with the processor, a third instruction into the plurality of instructions to save the previous value of the target register.