Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site turtlevax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!turtlevax!ken From: ken@turtlevax.UUCP (Ken Turkowski) Newsgroups: net.lang.c Subject: Re: C Floating point arithmetic Message-ID: <984@turtlevax.UUCP> Date: Thu, 5-Dec-85 15:31:47 EST Article-I.D.: turtleva.984 Posted: Thu Dec 5 15:31:47 1985 Date-Received: Sat, 7-Dec-85 21:06:14 EST References: <706@lasspvax.UUCP> <7849@ucla-cs.ARPA> Reply-To: ken@turtlevax.UUCP (Ken Turkowski) Distribution: net Organization: CIMLINC, Inc. @ Menlo Park, CA Lines: 24 In article <7849@ucla-cs.ARPA> jimc@ucla-cs.UUCP (Jim Carter) writes: > As for short-int-long conversions, I don't know of any machines where >loading 16 bits into a 32-bit register is any slower than loading 32 bits. However, if an int is a long, and your C compiler does all operations on longs, then it takes at least one extra instruction to either sign- or zero-extend a short or char to a long. So to add two shorts, you have: move16 _a,r0 ext32 r0 move16 _b,r1 ext32 r1 add32 r1,r0 move16 r0,_a Rather than move16 _a,r0 add16 _b,r0 move16 r0,_a Or add16 _b,_a Can you say "order of magnitude in speed difference"? -- Ken Turkowski @ CIMLINC, Menlo Park, CA UUCP: {amd,decwrl,hplabs,seismo,spar}!turtlevax!ken ARPA: turtlevax!ken@DECWRL.DEC.COM