Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!columbia!rutgers!lll-lcc!ames!necntc!pec From: pec@necntc.NEC.COM (Paul Cohen) Newsgroups: comp.arch Subject: Re: What with these Vector's anyways? [really string ops] Message-ID: <7967@necntc.NEC.COM> Date: Tue, 4-Aug-87 09:16:41 EDT Article-I.D.: necntc.7967 Posted: Tue Aug 4 09:16:41 1987 Date-Received: Thu, 6-Aug-87 01:29:59 EDT References: <218@astra.necisa.oz> <142700010@tiger.UUCP> Reply-To: pec@necntc.UUCP (Paul Cohen) Distribution: world Organization: NEC Electronics Inc. Natick, MA 01760 Lines: 46 Keywords: scalar vs. vectors, benchmarks In article <1699@comp.arch> tim@.amdcad.AMD.COM (Tim Olson) writes: >Many processors have specialized instructions for strings -- Intel's 80x86 >family (movs, cmps), AT&T's 32100 (strlen, strcmp), National's 32x32 >family (movs, cmps), NEC's V70 (movc, cmpc), Fairchild's Clipper (movc, >cmpc macros). However, most of these don't address "C-type" strings; >they require a character count as a parameter. With respect to the V70 I feel that I must add a point of clarification. It is true that the movc and cmpc instructions require a string length to be specified (they also require you to specify whether to use eight or sixteen bit characters), but these are not the only character string operations that the V70 supports. There are also: CMPCF (compare character string with filler) CMPCS (compare character string with stopper) MOVCF (move character string with filler) MOVCS (move character string with stopper) SCHC (search for character) SKPC (search for not a character) each of which has eight and sixteen bit versions. Of these instructions, CMPCS and MOVCS support C language strings and in fact strings terminated by any character you want to specify. In addition, SCHC can be used as a string-length operation by C. The V70's character string move instructions also allow you to specify whether to move the string in a forward or backward direction, a critical issue when source and destination overlap. The V70 also has a complement of bit-string operations; specifically there are: MOVBS NOTBS ANDBS ANDNBS ORBS ORNBS XORBS XORNBS SCH0BS SCH1BS (search for ...) each of which can be specified to work in a forward or reverse direction. In performing string operations, whether bit, byte or half-word, the V70 reads and writes memory 32-bits at a time. Can anyone comment on this with respect to the other 32-bit micros?