1. A method comprising: executing corresponding instruction threads as a leading thread and a trailing thread; saving a processor state corresponding to execution of a selected instruction in a history buffer before writing a result from the selected instruction to a destination register; comparing the result from the selected instruction executed in the leading thread to the result from the selected instruction executed in the trailing thread; and restoring the processor state corresponding to a previous instruction using data from the history buffer if the comparison indicates a fault.