Thread (2 messages) flat view 2 messages, 2 authors, 2000-04-20

Re: char type is unsigned with PPC gcc?

From: Gabriel Paubert <hidden>
Date: 2000-04-20 21:58:46

On Thu, 20 Apr 2000, Ron Flory wrote:
Hi-

 Despite the strongly worded exchanges, this isn't really a big deal.
We all have opinions, which is good.  So long as the compiler lets us
config it the way we think it should be, then I'm happy.
Well,
 There are some problems with chars having different signed'ness, such
as many of the GNU tools not compiling correctly on some platforms
though-
Indeed, I know this but there are cases where setting -fsigned-char
actually was a way to hide a bug:

http://lists.linuxppc.org/listarcs/linuxppc-dev/200003/msg00528.html

I don't know how frquent this case is, but I strongly suspect that is is
not an isolated one.
 Ummm, endianness has nothing to do with bit ordering from MSB->LSB, it
refers to the order BYTES (or the minimum quanta of assessable data) are
ordered in memory when accessing multi-byte values.  On big-endian
machines the 2-bytes value 0x1234 is stored sequentially as 0x12, 0x34,
whereas little-endian machines store it at 0x34, 0x12.  Notice the bits
in these bytes are not 'mirrored' as you suggest.
No, bit and byte ordering have to be consistent. Otherwise you end up with
the 68020+ mess, where a bit field one bit wide is not the same as a
single bit. I've not suggested anything about any kind of mirroring or so,
but perhaps did I not express myself clearly.
 All CPUs I'm aware of (even the PPC) correctly refer to the LSB as
being the rightmost bit, being consistent with the conventions of number
theory and representation, however the PPC is (almost) unique, and
incorrect in labeling the LSB as D31 instead of D0.
You've never seen a NS32000 documentation from the mid-eighties then:
all instructions encodings were show in binary starting from the LSB on
the left side. So 01101001 was 0x96 !

And claiming that the PPC is unique in this respect is simply grossly
incorrect...
quoted
Brain damage is believing that the fact that bit n represents 2 to the
n has any advantage or mathematical weight.
 Actually not.  The association of data bits Dn as representing 2^n is a
fundamental identity in computer science, electrical engineering, and
mathematics.  A binary numerical value is defined as a polynomial of the
form 2^n-1 + 2^n-2 + n^n-3 + .... 2^0.  The fact that IBM chose to
ignore Mr. Boole's work is an unfortunate historical oversight that we
are stuck with.
It is is not fundamental by any stretch of the imagination, and this
relationship is a mere superficial convenience as Dan Malek explained much
better than I would.
 That's OK, I wish you well.  I've got this out of my system now...  ;)
Actually, I believed in all what you claim about polynomials and so on a
long time ago, then I thought deeply and now I've seen the light...

	Regards,
	Gabriel.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help