Path: utzoo!attcan!uunet!husc6!mailrus!ncar!noao!asuvax!stjhmc!p6.f18.n114.z1.fidonet.org!will.summers
From: will.summers@p6.f18.n114.z1.fidonet.org (will summers)
Newsgroups: comp.lang.c
Subject: Re: Argument Passing in C
Message-ID: <705.2339B3D8@stjhmc.fidonet.org>
Date: 21 Sep 88 23:33:42 GMT
Sender: ufgate@stjhmc.fidonet.org (newsout1.24)
Organization: FidoNet node 1:114/18.6 - Iasd Eng Bbs, Phoenix Az
Lines: 27

In message <69210@sun.uucp> swilson%thetone@Sun.COM (Scott Wilson) writes:
 > 
 > Can someone explain to me what the difference is between a hardware stack
 > and a software stack?  I worked on a C compiler project once where
 > one person said the target machine "doesn't even have a hardware stack."
 > I asked what the difference was between the target machine and, say, a
 > 68000.
 > The answer was the 68000 had a stack because it supported addressing modes
 > like "movl d7,@sp-" whereas the target machine required you to use two
 > instructions, first a move then an explicit decrement of the stack pointer.

Interesting point.  Methinks a "proper" distinction would place any stack 
implemented in the store in the software category. Some kind of on-chip or 
auxilliary-chip stack would seem to me to be necessary to qualify as a 
"hardware" stack.                                 

A possible exception would be an implementation where the stack storage 
had a completely separate address space.  It's semantics, but seems to me 
that for a distinction there should be a difference, and one vs. two 
instructions seems too narrow a difference...

    \/\/ill 


--  
St. Joseph's Hospital/Medical Center - Usenet <=> FidoNet Gateway
Uucp: ...{gatech,ames,rutgers}!ncar!noao!asuvax!stjhmc!18.6!will.summers