Subject: Re: archive.c/arm32
To: None <cgd@pa.dec.com>
From: Wolfgang Solfrank <ws@tools.de>
List: current-users
Date: 03/24/1998 14:35:05
> > Ok, really dumb question here - why does arm32 use unsigned chars?
> 
> Because somebody, somewhere, decided that unsigned chars were the best
> idea for the ARM architecture.  I don't know what, if any, ARM
> architecture features justify that decision, but it wasn't one that
> was made by us.  It's not really something that we should be changing.
> (In other words, if the intent behind asking was to provoke change,
> you're barking up the wrong tree.)

For what it's worth, the decision to use unsigned chars on NetBSD/arm32
_was_ our decision :-) (at least in part).

It's true that for the ARM processor it's considerably easier to load
unsigned chars than it is to load signed chars (the latter have to be
sign-extended "by hand").  And it's true that gcc for the ARM did already
use unsigned chars.

However when we started the ARM port, we discussed the possibility to
teach gcc to use signed chars nevertheless, but rejected it on the grounds
that it would be better to teach NetBSD to be more portable.

> The PowerPC also uses unsigned chars, but it doesn't use our in-tree
> gcc sources, so hasn't tripped over the problem.

The PowerPC port tripped over the problem for quite some time.  In fact,
some of the changes to support unsigned chars were integrated into the
NetBSD tree by myself while doing the PowerPC port, not the ARM port.

PS: Note that in the above "unsigned chars" and "signed chars" means the
unsignedness vs. signedness of chars by default, not support for the
C-language construct "signed char" of "unsigned char".

Ciao,
Wolfgang
-- 
ws@TooLs.DE     (Wolfgang Solfrank, TooLs GmbH) 	+49-228-985800