Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!ucla-cs!sdcrdcf!trwrb!desint!geoff From: geoff@desint.UUCP (Geoff Kuenning) Newsgroups: comp.sys.m68k,comp.sys.intel Subject: Re: 386 vs 020 and big benchmarks (sieve) Message-ID: <650@desint.UUCP> Date: Sun, 19-Apr-87 21:17:25 EST Article-I.D.: desint.650 Posted: Sun Apr 19 21:17:25 1987 Date-Received: Tue, 21-Apr-87 00:24:23 EST References: <930@intsc.UUCP> <513@omen.UUCP> <933@intsc.UUCP> <866@oakhill.UUCP> Reply-To: geoff@desint.UUCP (Geoff Kuenning) Distribution: comp Organization: Interrupt Technology Corp., Manhattan Beach, CA Lines: 29 Xref: mnetor comp.sys.m68k:378 comp.sys.intel:170 In article <866@oakhill.UUCP> davet@oakhill.UUCP (Dave Trissel) writes: > If the 386 only supports three register variables and in this tiny benchmark As usual, Dave is right on target. Pcc for the 386 does indeed only allow three register variables. Furthermore, I am currently involved in writing an extremely carefully hand-coded assembly loop (bitblt, if you care) for the 386. No matter what you do, you can't get more than seven registers for your use on the 386. And even disregarding that, the code on the 386 is *much* uglier than the equivalent 68k (not '020) code. For example, the 386 only has one register (esi) that can do autoincrement loads, and one that can do autoincrement stores. If you want to mix autoincrements with autodecrements (fortunately something I don't have to do), you have to execute a special instruction (std) to switch directions. However, in practice, it turns out that the standard 386 instructions are often a faster way to accomplish things than the "special" ones. My favorite is the special "loop" instruction. It decrements a register and then does a conditional branch. This takes 11 clocks, plus pipeline-reloading time. But if you issue a subtract-immediate instruction followed by a jump, you will only spend 9 clocks plus pipeline-reloading. On the other hand, the built-in memory management on the 386 is clearly a really big plus. Frankly, Motorola, you dropped the ball badly on that one, going clear back to the 68k itself. I would *much* rather have the MMU built into the '020 than have the extra instructions you guys added (not that I don't like them too, but I think the MMU is much more important). And yes I realize that there are many applications that don't need an MMU. -- Geoff Kuenning geoff@ITcorp.com {hplabs,ihnp4}!trwrb!desint!geoff