Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-spam!mordor!lll-tis!ptsfa!hoptoad!gnu From: gnu@hoptoad.uucp (John Gilmore) Newsgroups: comp.sys.m68k Subject: Re: 68000 shift/rotate timings Message-ID: <2337@hoptoad.uucp> Date: Sat, 27-Jun-87 23:37:11 EDT Article-I.D.: hoptoad.2337 Posted: Sat Jun 27 23:37:11 1987 Date-Received: Sun, 28-Jun-87 06:42:19 EDT References: <19497@ucbvax.BERKELEY.EDU> Organization: Nebula Consultants in San Francisco Lines: 15 robinson@renoir.Berkeley.EDU (Michael Robinson) wrote: > why is the time to shift a register a > function of n, but the time to shift memory a constant? Because the 68000 (and 68020) can only shift a memory location by a single bit. It uses the "X" bit for carrying the shifted bit between words, e.g. if you are shifting a 256-bit string, you can do it with a dbra loop over a roxl instruction, but only one bit at a time. Shifting long strings by multiple bits requires more complicated logic, e.g. a funnel shifter rather than a barrel shifter, and a register to hold the intermediate result as it propagates along the string. Motorola didn't get that fancy. -- {dasys1,ncoast,well,sun,ihnp4}!hoptoad!gnu gnu@ingres.berkeley.edu Alt.all: the alternative radio of the Usenet. Contributions welcome - post 'em