From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <86639420482c8f4a36c4ce9a8822c9e0@coraid.com> To: 9fans@cse.psu.edu Subject: Re: [9fans] Non-stack-based calling conventions From: Brantley Coile Date: Sat, 16 Feb 2008 19:04:31 -0500 In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 5784875c-ead3-11e9-9d60-3106f5b1d025 >> All the memory you would need was known as compile time. > > At the cost of transforming relocation into black magic. Were there > binaries on that platform? Did those binaries need relocation? With code > and data intermingled, there must have also been serious problems with > minimizing binary sizes. All the "empty" words at the beginning of each > subroutine had to be written to permanent storage, I guess. The x86 stack > consumes zero space on permanent storage. The relocation formats for the 6600 assembler wasn't that complicated, much less than coff. For the Cyber 17/18 the instructions could be pc relative and didn't have to be relocated when linked together, at least not for the call/return scenario. The 6600 had a field address that was added to the program counter to relocate the program. It also had a field length register to make sure you didn't spill off the end. All was much simpler than today.