Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!rochester!rit!ultb!jed4885 From: jed4885@ultb.UUCP (J.E. Dyer) Newsgroups: comp.arch Subject: Re: Understanding variations in Dhrystone performance Summary: Search word for byte instruction? Message-ID: <839@ultb.UUCP> Date: 18 May 89 13:55:37 GMT References: <474@estevax.UUCP> <1989May15.173631.3029@utzoo.uucp> <1989May16.172354.1417@utzoo.uucp> Reply-To: jed4885@ultb.UUCP (J.E. Dyer (713ICS)) Organization: Rochester Institute of Technology, Information Systems Lines: 27 In article <1989May16.172354.1417@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: >In article <1989May15.173631.3029@utzoo.uucp> I wrote: >> (((x & ~0x80808080) - 0x01010101) & 0x80808080) >> >>The result is nonzero if, and only if, there was a NUL byte in x... > > [ Stuff about needing a filter to detect false alarms deleted ] >Subversion, n: a superset | Henry Spencer at U of Toronto Zoology >of a subset. --J.J. Horning | uunet!attcan!utzoo!henry henry@zoo.toronto.edu This does seem like alot of work to test for a null byte... Has anyone considered putting in a test-word-for-byte (twfb?) instruction on their favorite processor? It seems to me that adding this kind of a function to an alu would be pretty trivial, and it would make a significant improvement in some kinds of string operations. Of course, your strings would have to be aligned on word boundaries, but that shouldn't be to difficult to add to a compiler. Has anyone done this sort of thing? Is there any reason not to? (I haven't designed any (real) processors, so it's entirely possible that I'm missing out on some major consideration :). -Jason -sig-of-the-day- "So, Jason, how's that graphics project going?" BITNET: JED4885@RITVAX UUCP: jed4885@ultb