1. A method of executing a set one or more instructions, including: determining, based on at least in part on a synchronization state of an object associated with the set of instructions, whether the set of instructions should be executed speculatively, wherein prior to determining whether the set of instructions should be executed speculatively, determining that speculation is not active on the set of instructions and determining whether the object should be thin locked; saving in a software data structure, one or more states of one or more saved state source registers, wherein the software data structure is not stored in a register file; speculatively executing the set of instructions, wherein at least one store made to a memory location during the speculative execution is not committed until the speculative execution is successfully completed and speculatively executing the set of instructions includes modifying one or more of the one or more saved state source registers, wherein a previous state of the one or more saved state source registers is saved in the software data structure; and restoring one or more states of the one or more saved state source registers to one or more of the one or more states saved in the software data structure if an abort indication is received, wherein the abort indication triggering copying of the one or more of the one or more states saved in the software data structure to one or more of the one or more saved state source registers is received before the set of instructions is entirely speculatively executed; wherein saving the set of one or more saved state source register states in the software data structure, speculatively executing the set of instructions, and restoring the state of one or more saved state source registers are performed in the event that the indication indicates that the set of instructions should be executed speculatively.