1. A method for executing program instructions on a processor, comprising: issuing instructions for execution during a normal-execution mode; and upon encountering an unresolved data dependency during execution of an instruction in the normal-execution mode, transitioning execution from the normal-execution mode to a lookahead mode, wherein executing in the lookahead mode comprises: checkpointing state information for the processor; speculatively executing subsequent instructions to prefetch future loads; and when an instruction from the subsequent instructions retires during the lookahead mode, not copying a working register which serves as a destination register for the instruction to a corresponding architectural register and instead marking the architectural register as invalid, wherein marking architectural registers as invalid instead of copying corresponding working registers to the architectural registers while executing instructions during the lookahead mode eliminates the need to checkpoint the architectural registers prior to entering the lookahead mode.