Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!oliveb!sun!thetone!swilson
From: swilson%thetone@Sun.COM (Scott Wilson)
Newsgroups: comp.lang.c
Subject: Re: Argument Passing in C
Keywords: What *really* happens...
Message-ID: <69210@sun.uucp>
Date: 20 Sep 88 21:08:47 GMT
References: <2235@ssc-vax.UUCP> <12187@steinmetz.ge.com>
Sender: news@sun.uucp
Reply-To: swilson@sun.UUCP (Scott Wilson)
Organization: Sun Microsystems, Mountain View
Lines: 19

>The
>Honeywell machines don't have a hardware stack, and can have any number
>of software stacks.

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.
So what?, I thought.  So which machines have a hardware stack and which
don't and how do the differences appear to, say, an assembly language
programmer.

--
Scott Wilson		arpa: swilson@sun.com
Sun Microsystems	uucp: ...!sun!swilson
Mt. View, CA