Date: Sun, 21 Oct 2001 11:58:00 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: Peter Wemm <peter@wemm.org>, <ia64@FreeBSD.ORG> Subject: Re: Hazards [was: Re: cvs commit: src/sys/ia64/ia64 sal.c] Message-ID: <20011021115633.U549-100000@salmon.nlsystems.com> In-Reply-To: <20011021020106.A540@dhcp01.pn.xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 21 Oct 2001, Marcel Moolenaar wrote: > On Sun, Oct 21, 2001 at 01:16:52AM -0700, Peter Wemm wrote: > > > > > > Which leaves: > > > HAZARD (certain) WAW Dependency between 400000000003e500.0 and 400000000003e5 > > 10.2 on p6 > > > > > > According to ski this gives: > > > 400000000003e500 cmp.ge p6=r0,r33 > > MIB > > > nop.i 0x0 > > > ! (p6) br.ret.spnt.few b0 > > > 400000000003e510 nop.m 0x0 > > MII > > > mov.i r14=ar.lc > > > cmp.ltu p6=17,r33 > > > > > > This is clearly a hazard. > > > > Is it? The ia64 manual I have suggests that this special case is > > allowed.. volume 1, section 3.4.1.. It talks about how branches > > that use predicates set in the same bundle are allowed.. Speculation > > deals with it. But I get a brain implosion when reading that stuff. :-) > > :-) > > It's not the branch that's causing the hazard. It's the second compare > (cmp.ltu) that's causing a hazard with the first compare (cmp.ge). > If the first compare yields false, the branch is not taken and the > second compare will define p6 in the same instruction group. Aah, I see the problem now. What is the function name which contains this code? -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ia64" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011021115633.U549-100000>
