Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* packing/unpacking 4-octet longs
@ 2001-12-04  5:44 Timothy Wall
  2001-12-05  8:26 ` Andrew Cagney
  0 siblings, 1 reply; 10+ messages in thread
From: Timothy Wall @ 2001-12-04  5:44 UTC (permalink / raw)
  To: gdb

I'm working on a DSP port (yes, I'm the one tossing the OCTETS_PER_BYTE
strangeness about) and TI has introduced yet another Really Strange Thing.

Longs on this chip are packed little-endian.  No wait, they're packed
big-endian.  No-wait, it's both!

Basically, words are packed little-endian w/r/t octets, but the two words are
big-endian, e.g.

0xaabbccdd is stored as 0xbb 0xaa 0xdd 0xcc.  This I can account for in the
long/float/double packing/unpacking routines (though I'm not sure how I'm
going to make a clean patch yet...).  The problem is that the word order
switches if the value is accessed at an odd address (apparently this made
sense to the hardware designers).  The MS word of a long is always the first
one accessed (they must have forgotten that the chip was little-endian).

Any ideas of how to make this happen?  I remember doing a fix for something
similar way back, but looking at the code now, by the time the data is
packed/unpacked, the target address is long gone.  I doubt I can reliably do
swapping every time I access a 4-octet block of target data.

T.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2001-12-06 10:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-12-04  5:44 packing/unpacking 4-octet longs Timothy Wall
2001-12-05  8:26 ` Andrew Cagney
2001-12-05  8:46   ` Richard Earnshaw
2001-12-05 10:11     ` Lars Brinkhoff
2001-12-05 10:42     ` Andrew Cagney
2001-12-06  2:03       ` Richard Earnshaw
2001-12-05  9:31   ` Timothy Wall
2001-12-05 10:03     ` Andrew Cagney
2001-12-05 10:20       ` Timothy Wall
2001-12-05 10:49         ` Andrew Cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox