Path: utzoo!attcan!uunet!convex!mozart!hutchson From: hutchson@mozart.uucp (Stephen Hutcheson) Newsgroups: comp.arch Subject: Re: register save/restore Message-ID: <696@convex.UUCP> Date: 5 Nov 88 02:47:25 GMT References: <3300037@m.cs.uiuc.edu> <5938@killer.DALLAS.TX.US> <1009@l.cc.purdue.edu> <9663@pur-ee.UUCP> Sender: news@convex.UUCP Reply-To: hutchson@mozart.UUCP (Stephen Hutcheson) Organization: Convex Computer Corporation, Richardson, Tx. Lines: 12 In a previous incarnation, I was an interested party (compiler developer) to a project that defined a calling sequence for a new architecture. The various arguments about code size and information available were bandied about, to little effect. The final decision was to let the caller save. We had (and hoped to mix) code in several languages, including more than the normal percentage of assembly-language code, some of it very crufty. It was observed that if the caller saved his own context, the callee could not easily foul it up. The older architecture used callee-saves, and clever callees often didn't save. Half-clever callees didn't save as often as they should have, and it had been a recurring problem. The new "defensive driving" approach would have that problem only within a subroutine; the old approach had it across subroutines.