Patent ID: 7849290

Claim:
A method for buffering stores on a processor that supports speculative execution, comprising: buffering a store of at least one byte into an entry in a store queue during a speculative execution mode, wherein if a data value for the store is unknown because of an unresolved data dependency, buffering the store involves asserting an unknown value flag for the entry in the store queue, wherein the unknown value flag is de-asserted if any subsequently buffered store writes to the at least one byte in the entry; wherein if a corresponding entry for the store does not already exist in the store queue, buffering the store involves writing the at least one byte into a corresponding position in an available entry in the store queue and updating a byte mask for the available entry to indicate the position where the at least one byte was written; and wherein if the corresponding entry for the store already exists in the store queue, buffering the store involves merging the at least one byte into the existing entry in the store queue by writing the at least one byte into a corresponding position in the entry in the store queue and updating the byte mask to indicate the position where any previous bytes were written and the position where the at least one byte was written; and forwarding the at least one byte from the store queue to subsequent dependent loads.