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