Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.dougwise.org!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!198.186.194.247.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!news1.google.com!news2.google.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!spln!extra.newsguy.com!newsp.newsguy.com!news5 From: Michael Wojcik Newsgroups: comp.lang.java.programmer Subject: Re: Java left shift and right shift operators. Date: Thu, 28 Apr 2011 19:22:58 -0400 Organization: Micro Focus Lines: 40 Message-ID: References: <295e16b3-2ed8-4529-bfb0-1cc26ed93ad6@d26g2000prn.googlegroups.com> <188cz6ta97kkm$.dlg@kimmeringer.de> <201104280037257944-angrybaldguy@gmailcom> NNTP-Posting-Host: p87cc63f298e6c34c7eadd287dbb8fc4fef076ec6d21492f9.newsdawg.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.5.0 In-Reply-To: <201104280037257944-angrybaldguy@gmailcom> Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3346 Owen Jacobson wrote: > > One of the things that could've made Itanic so cool was the ability to > pre-emptively evaluate both sides of a branch, many instructions in > advance, and throw away all the alternatives but the one that "actually > happened". Unfortunately, programming around this was really hard even > for experienced compiler writers, and the chips were notoriously > power-hungry and expensive, so it never really took off. Eh? Speculative execution is hardly a rare CPU feature, among modern general-purpose CPUs. At least one reference[1] claims "all modern CPUs" have spec-exec - which seems dubious, but I suppose one could quibble over what a "modern" CPU is. x86 CPUs have had it at least since the Pentium Pro (P6).[2] PPC has had it since at least the 603.[3] If it's branch predication (note I'm talking about *predication*, not *prediction*, here) you're thinking of, that also antedates Itanium and continues to be implemented in modern CPUs. DEC Alpha and HP PA-RISC had limited predication, where stores to memory on a speculative branch could be rewritten to write to a register instead, with a predicate-controlled store after the branch result was known; and PPC has had aggressive predication since at least the 604.[4] US patent 5,471,593 describes predicated execution; it was filed in 1995. And it cites prior work, including the Cydra 5 from the late '80s - which I don't know much about, but which apparently had a basic predicated-execution system. So, not new in the Itanium, and not sinking with it either. [1] http://www.hardwaresecrets.com/printpage/209 [2] http://www.datasheetarchive.com/datasheet-pdf/078/DSAE0072944.html [3] http://www.cs.pitt.edu/~alanjawi/history.html [4] http://www.princeton.edu/~rblee/ELE572Papers/the-effects-of-predicated.pdf -- Michael Wojcik Micro Focus Rhetoric & Writing, Michigan State University