Subject: Re: Libraries in standalone programs (pmax/ELF specific?)
To: Curt Sampson <cjs@cynic.net>
From: Chris G. Demetriou <cgd@netbsd.org>
List: tech-kern
Date: 03/31/1999 08:08:58
Curt Sampson <cjs@cynic.net> writes:
> On Wed, 31 Mar 1999, Simon Burge wrote:
>
> > On the pmax, this generates slightly smaller code.
> > ...
> > - while (n-- > 0)
> > + while (n--)
>
> Well, I suppose that doesn't actually change what the test does,
> since n is unsigned (at least I believe size_t is unsigned on all
> machines), but it does change the op (from > to !=), which may
> actually go and change the number of instructions on other platforms
> as well, potentially the other way....
probably not, really. i'm acrually surprised that the pmax compiler
generates the extra instruction. for an unsigned number, (n > 0) is
always simply (n != 0).
does the mips compiler do the 'wrong thing' still with (n-- != 0)?
I'm not particularly keen on using 'counting' integers as booleans,
which is why i wrote the code that way. I think the "!= 0" or "> 0"
test is easier to understand, it it has the same logical
effect... (and it should be a simple optimization to do the right
thing!!!)
Anyway, if you're going to make a change like this, you should also
change at least bcopy.c, bzero.c and memset.c.
cgd
--
Chris Demetriou - cgd@netbsd.org - http://www.netbsd.org/People/Pages/cgd.html
Disclaimer: Not speaking for NetBSD, just expressing my own opinion.