Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!amdcad!tim From: tim@amdcad.AMD.COM (Tim Olson) Newsgroups: comp.arch Subject: Re: Branch Delay Annullment Message-ID: <22082@amdcad.AMD.COM> Date: 16 Jun 88 03:06:35 GMT References: <22065@amdcad.AMD.COM> <1081@nud.UUCP> Reply-To: tim@amdcad.UUCP (Tim Olson) Organization: Advanced Micro Devices Lines: 23 In article <1081@nud.UUCP> tom@nud.UUCP (Tom Armistead) writes: | The number of loop instructions is equivalent in either the | annul-taken form or the always executed form (for this example | anyway). The only slight difference is that no "cleanup" instruction | was required in the always executed form. There might be some instances | where annul-taken is better but I don't know of any specific ones. I agree -- delayed branches are a win for the cases in which you can find a delay instruction which is beneficial in both cases, or is beneficial in the most-taken direction and is "innocuous" in the other. The case I was discussing was when one of these could not be found. In that case, an "annul-untaken" jump would allow you to always fill the branch delay slot in a loop. This is admittedly infrequent (we didn't add annulling branches in the 29000, because we felt it wouldn't buy much, and could cause restartability problems when a trap occured between a jump and its annulled delay slot), I was just wondering what was the intended use of the "annul-taken" form. It would seem to benefit "if" statements the most. -- Tim Olson Advanced Micro Devices (tim@delirun.amd.com)