Hello David,

did you solve the problem of reverse endian of data ? if so, I am interested
to have some knowledge.

I am new in these arena. Would you please give me some suggestion regarding
this?

-Konica




David Brown-4 wrote:
> 
> Would it be possible to use the named address space syntax to implement 
> reverse-endian data?  Conversion between little-endian and big-endian 
> data structures is something that turns up regularly in embedded 
> systems, where you might well be using two different architectures with 
> different endianness.  Some compilers offer direct support for endian 
> swapping, but gcc has no neat solution.  You can use the 
> __builtin_bswap32 (but no __builtin_bswap16?) function in recent 
> versions of gcc, but you still need to handle the swapping explicitly.
> 
> Named address spaces would give a very neat syntax for using such 
> byte-swapped areas.  Ideally you'd be able to write something like:
> 
> __swapendian stuct { int a; short b; } data;
> 
> and every access to data.a and data.b would be endian-swapped.  You 
> could also have __bigendian and __litteendian defined to __swapendian or 
> blank depending on the native ordering of the target.
> 
> 
> I've started reading a little about how named address spaces work, but I 
> don't know enough to see whether this is feasible or not.
> 
> 
> Another addition in a similar vein would be __nonaligned, for targets 
> which cannot directly access non-aligned data.  The loads and stores 
> would be done byte-wise for slower but correct functionality.
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Idea---big-and-little-endian-data-areas-using-named-address-spaces-tp30179796p31330986.html
Sent from the gcc - Dev mailing list archive at Nabble.com.

Reply via email to