Xref: utzoo comp.unix.questions:30103 comp.unix.internals:2489 comp.unix.programmer:1501 comp.lang.c:37967 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!apple!netcom!amdcad!dgcad!dg-rtp!webo!cheshirecat!lewine From: lewine@cheshirecat.webo.dg.com (Donald Lewine) Newsgroups: comp.unix.questions,comp.unix.internals,comp.unix.programmer,comp.lang.c Subject: Re: Unix Stack Frame Questions Message-ID: <1991Apr3.203001.5763@webo.dg.com> Date: 3 Apr 91 20:30:01 GMT References: <125@epic.epic.com> <3465@unisoft.UUCP> Sender: usenet@webo.dg.com (Usenet Administration) Reply-To: uunet!dg!lewine Distribution: na Organization: Data General Corporation Lines: 24 In article <3465@unisoft.UUCP>, greywolf@unisoft.UUCP (The Grey Wolf) writes: |> |> I didn't think that a CPU ever "enforced" a stack frame; ostensibly one |> could ignore the references to "4(fp)" in the manual and do it their own |> way. The VAX comes very close to enforcing a stack frame in hardware/ microcode. |> |> But a stack frame seems to be the most efficient way of dealing with |> calls and returns. Wrong! Passing arguments in registers is more efficient. That is a major reason why RISC's with 32 (or more) registers win. A fast call/return is worth a great deal in the MIPS war. In short, if your code makes any assumptions about where arguments are located, you have reduced your portability by a mile. -------------------------------------------------------------------- Donald A. Lewine (508) 870-9008 Voice Data General Corporation (508) 366-0750 FAX 4400 Computer Drive. MS D112A Westboro, MA 01580 U.S.A. uucp: uunet!dg!lewine Internet: lewine@cheshirecat.webo.dg.com