Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!wuarchive!udel!rochester!pt.cs.cmu.edu!o.gp.cs.cmu.edu!TR5.GP.CS.CMU.EDU!spot From: spot@TR5.GP.CS.CMU.EDU (Scott Draves) Newsgroups: comp.arch Subject: Re: speculative execution Message-ID: <1990Oct12.182759.16989@cs.cmu.edu> Date: 12 Oct 90 18:27:59 GMT References: <42062@mips.mips.COM> <3445@bnr-rsc.UUCP> Sender: netnews@cs.cmu.edu (USENET News Group Software) Reply-To: spot@TR5.GP.CS.CMU.EDU (Scott Draves) Organization: Carnegie Mellon University Lines: 22 In article <3445@bnr-rsc.UUCP>, schow@bcarh185.bnr.ca (Stanley T.H. Chow) writes: |> In article <42062@mips.mips.COM> mash@mips.COM (John Mashey) writes: |> > |> > a) The load is an uncached load to a volatile device register. |> > Hoisting is of course a no-no, as this will drive OS programmers |> > nuts, and in fact, must be carefully synchronized with |> > surrounding operations, or else. |> |> This should not be particularly hard, just use "volatile" in C. (I know, |> the zillions of lines of existing code may break, but as some people say - |> those programs are brain-damaged :-). |> that looks like a pretty good argument that this should be done by the compiler rather than the hardware. the same goes for the exception stuff that other people have mentioned; a good compiler can determine when exceptions are impossible and proceed to speculate. Consume Scott Draves Be Silent spot@cs.cmu.edu Die