Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!lll-crg!lll-lcc!pyramid!pesnta!valid!pete From: pete@valid.UUCP (Pete Zakel) Newsgroups: net.micro.amiga,net.lang.c Subject: Re: printf() code size using Astartup.obj and AMIGA.LIB only Message-ID: <421@valid.UUCP> Date: Wed, 9-Jul-86 20:37:39 EDT Article-I.D.: valid.421 Posted: Wed Jul 9 20:37:39 1986 Date-Received: Fri, 11-Jul-86 06:15:13 EDT References: <8606270438.AA07486@pavepaws> <426@oscvax.UUCP> <84@unisoft.UUCP> <566@3comvax.UUCP> <1385@well.UUCP> <951@jade.BERKELEY.EDU> Organization: Valid Logic, San Jose, CA Lines: 12 Xref: watmath net.micro.amiga:3908 net.lang.c:9801 > >>causes var to be first loaded, extended to a word, extended to a long, then > >>compared against 0, EVEN when var is declared as a UBYTE... > > What's the second extend doing in there? Anything claiming to be a > reasonable compiler should generate ONE extend. Not if the processer is a 68000 or 68010. There is NO instruction to extend byte to long. Fortunately that was fixed in the 68020, but that doesn't help unless you have a compiler that understands 68020 AND you know all your target machines have 68020s. -- -Pete Zakel (..!{hplabs,amd,pyramid,ihnp4}!pesnta!valid!pete)