Path: utzoo!attcan!uunet!cs.utexas.edu!samsung!xylogics!transfer!lectroid!bigbootay!dswartz From: dswartz@bigbootay.sw.stratus.com (Dan Swartzendruber) Newsgroups: comp.arch Subject: Re: unexpected CPU behavior [was 486 bugs -- it's in there!] Message-ID: <1429@lectroid.sw.stratus.com> Date: 30 May 90 18:18:05 GMT References: <1990May27.110726.17007@xavax.com> <16744@haddock.ima.isc.com> <2159@sauron.Columbia.NCR.COM> Sender: usenet@lectroid.sw.stratus.com Reply-To: dswartz@bigbootay.sw.stratus.com (Dan Swartzendruber) Distribution: na Organization: Stratus Computer, Software Engineering. Lines: 17 I don't quite understand your comment: "...C compilers seem to keep doing this..." Please satisfy my naive curiosity. What is wrong with "*p = 0;" generating a "clr (a0)" or somesuch. When you have an instruction which is defined a zeroing its operand, this seems a rather obvious use to me! If the original microcoders made a silly mistake by sharing the single-operand RMW microcode for this instruction without documenting it (and BTW, I do have an OLD manual where the footnote is missing from the clr page.), that is hardly grounds for slandering C compiler writers who expected the instruction to work as documented. Do you feel that it is more intuitive to declare a variable whose sole purpose is to be zeroed and then assigned to the destination??? -- Dan S.