1. A method for performing memory operations in a microprocessor comprising: storing at least a first data address corresponding to a first store memory operation in a speculative store buffer, said first store memory operation being speculative upon said storing; storing at least said first data address corresponding to said first store memory operation in a load/store buffer; accessing said speculative store buffer in response to a first load memory operation which is subsequent to said first store memory operation in program order; forwarding a value corresponding to said first store memory operation from said speculative store buffer if a second data address corresponding to said first load memory operation matches said first data address; and reading said first data address from said load/store buffer and updating said data cache responsive to said first store memory operation becoming non-speculative.