On Mon, Aug 21, 2006 at 07:07:36AM -0400, Wu Zhou wrote:
decimal128 is defined like this in libdecnumber:
typedef struct
{
uint8_t bytes[DECIMAL128_Bytes]; /* decimal128: 1, 5, 12, 110 bits */
} decimal128;
It is always big-endian.
When parsing dfp constant in our patch, we are also using a byte array
to store its value. It is big-endian too:
struct {
gdb_byte val[16];
struct type *type;
} typed_val_decfloat;
But when transfering them into gdb's value system
(value_from_decfloat), we need to do endianess transfer in little
endian machine. This is why exchange_dfp is needed.
Why? Why can't that use exactly the same big endian representation?
It's big endian on the target, it's big endian in the library, so what
are you doing that needs it to be little endian?