title: Are the store buffer and reorder buffer both used for speculative instructions?
body: <p>I understand that the reorder buffer can be used as an history buffer for speculative execution needs, and it also allows registers to be renamed into ROB entries (to break named dependencies, as register renaming).</p>
  
  <p>Reading resources/manuals online, it would seem that the store buffer is also used for speculative execution. Isn't the ROB sufficient to discard values in case of a wrong path prediction?</p>