1. A method for creating precise exceptions in an execution unit, the method comprising: checkpointing an exception causing instruction, the checkpointing resulting in a current checkpointed state; locking the current checkpointed state; determining if any of a plurality of registers require restoration to the current checkpointed state; restoring one or more of the registers to the current checkpointed state in response to the determining indicating that the one or more registers require the restoring; and restarting the execution unit at the exception handler or the next sequential instruction dependent on whether traps are enabled for the exception.