Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!henry From: henry@utzoo.UUCP (Henry Spencer) Newsgroups: net.lang.c Subject: Re: setjmp/longjmp Message-ID: <4600@utzoo.UUCP> Date: Thu, 8-Nov-84 12:11:39 EST Article-I.D.: utzoo.4600 Posted: Thu Nov 8 12:11:39 1984 Date-Received: Thu, 8-Nov-84 12:11:39 EST References: <1@imd.UUCP>, <469@ncoast.UUCP> Organization: U of Toronto Zoology Lines: 15 > Ummm... it's easy to push the register mask when you moveml the registers > to be saved on entry to a subroutine in the 68000, but moveml mask,(a7)- > and moveml mask,(a7)+ expect the mask reversed from each other! How > do you propose to invert a 16-bit mask end-for-end (i.e. 11100...001 > <=> 100...00111 ) and still have a fast calling sequence? Easy; you're pushing a constant. The inversion gets done at compile time. Bear in mind also that the only thing that ever has to decipher that mask is longjmp(), which doesn't have to be fast. Alas, even pushing a constant on every function call is a lot of expense when every call has to pay it just so a few can do longjmp(). -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry