🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #20742

Re: Complex Instructions

#20742
From: Stan Lackey
Date: Thu, 13 Apr 1989 16:22
35 lines
2548 bytes
In article <3169@bd.sei.cmu.edu> firth@sei.cmu.edu (Robert Firth) writes:
>In article <5064@hubcap.clemson.edu> mark@hubcap.clemson.edu (Mark Smotherman) writes:
> [quoting Clark & Strecker]
>
>>  "Anecdotal accounts of irrational implementations are certainly
>>   interesting.  Is it *typical*, however, that composite instructions
>>   run more slowly than equivalent sequences of simple instructions?
>
>In my experience, yes, it is indeed typical.  Taking only the example
>of the VAX, I have found naive code faster than the block operations
>(MOVC3, CMPC3), the loop instruction (ACB), INDEX, and, of course, the
>call instructions.

You should include ALL of the data here.  The proper way of saying
this is: "The implementation of the subset that I need in a particular
case is faster than the full operation."  For example, the VAX CALL
includes aligning the stack and saving enough state so it can be fully
restored, saving the condition codes, pushing a minimum of five
longwords, picking up a mask at the called procedure, and pushing only
those registers with corresponding bits set in the mask.  I'll bet
your substitution code did not do all that.  The string instructions
have logic in them to make sure overlapping strings worked, zero-length
strings worked etc., regardless of the case.  Did your code do that?
INDEX was another example where some of the exception checking was
left out of the emulation.  I guess it USUALLY works!

CALL was never intended to be faster than JSR; it was designed to ease
the programming burden of a consistent calling standard, so
cross-language calls would just work.  Now if there were no JSR, there
would be something to complain about.  But all the simple instructions
are present, and implemented in an optimized way!  So the user has a
choice: use the fully functional instructions if he wants the machine
to do the work, or reinvent all the way down to the bare metal.  With
RISC, there is no choice.
So there! :-) Stan
Technical Details
Message-ID: <38629@bbn.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!bbn!bbn.com!slackey
References: <807@microsoft.UUCP> <92634@sun.uucp> <13322@steinmetz.ge.com> <573@loligo.cc.fsu.edu> <5064@hubcap.clemson.edu> <3169@bd.sei.cmu.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!bbn!bbn.com!slackey
From: slackey@bbn.com (Stan Lackey)
Newsgroups: comp.arch
Subject: Re: Complex Instructions
Keywords: RISC, CISC, HPS
Message-ID: <38629@bbn.COM>
Date: 13 Apr 89 16:22:34 GMT
References: <807@microsoft.UUCP> <92634@sun.uucp> <13322@steinmetz.ge.com> <573@loligo.cc.fsu.edu> <5064@hubcap.clemson.edu> <3169@bd.sei.cmu.edu>
Sender: news@bbn.COM
Reply-To: slackey@BBN.COM (Stan Lackey)
Organization: Bolt Beranek and Newman Inc., Cambridge MA
Lines: 35