1. A method for executing a transaction on a multi-threaded processor, comprising: executing the transaction in a transaction-pending mode, which involves placing load-marks or store-marks on cache lines loaded from or stored to during transaction-pending mode and also buffering store operations in a store queue; upon encountering a store queue overflow, continuing to execute the transaction in a store-queue-overflow mode, which involves placing load-marks or store-marks on cache lines loaded from or stored to during store-queue-overflow mode and discarding store data which does not fit into the store queue during store operations; and upon completing the transaction in the store-queue-overflow mode, re-executing the transaction in a repeating-transaction mode, which executes the instructions in the transaction non-speculatively, and in doing so allows the store operations to commit to the memory hierarchy.