Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!ames!ucbcad!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: Printer drivers and Aztec 3.04a Message-ID: <8705100229.AA00570@cory.Berkeley.EDU> Date: Sat, 9-May-87 22:29:49 EDT Article-I.D.: cory.8705100229.AA00570 Posted: Sat May 9 22:29:49 1987 Date-Received: Sun, 10-May-87 08:58:48 EDT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 25 Aztec uses A4 as its base register for global data ONLY in the small data model. BUT (and I think Aztec made the correct decision here), it will NOT use A4 at all in it's large data model unless you give it a specific compile-time flag saying it's ok. This is so small and large data segments can be mixed freely. Aztec uses D0,D1,D2,D3,A0, and A1 as scratch (doesn't bother to save). You can specify a 'super compatibility mode' flag, +p I believe, which causes Aztec to save D2/D3 (thus conforming with amiga specs). However, this is a problem only if some external routine calls aztec. Definately not a problem when Aztec calls some external routine. (P.S. A good guess as to why 4 data registers are 'scratch' is because most, if not all expressions can be calculated utilizing 4 temporary registers) And we all know that Aztec doesn't bother to save A6 when it makes library calls. This is a deficiency in the library code to make those calls rather than in the Aztec compiler. Frankly, the increase in speed isn't noticeable and it would have been well worth the effort to save that register. Of course, those people with the commercial version could simply fixup those library modules since they have the source, but this is not desireable because the source would then be incompatible with everybody else's compiler. -Matt