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.