1. A method for operating a re-order buffer having a first level and a second level, the method comprising: in response to detecting at least one condition for changing an operating mode of the re-order buffer is met, changing the operating mode of the re-order buffer from a first operating mode to a second operating mode by: creating a checkpoint of a current state of a thread; and moving at least one of incomplete instructions from the first level of the re-order buffer to the second level of the re-order buffer, wherein each incomplete instruction is one of currently executing and awaiting execution; wherein the incomplete instructions in the first level of the re-order buffer are not moved to the second level of the re-order buffer in the first operating mode.