From: Wu Zhou <woodzltc@cn.ibm.com>
To: Wu Zhou <woodzltc@cn.ibm.com>, gdb-patches@sourceware.org
Subject: Re: [RFC] decimal float point patch based on libdecnumber: gdb patch
Date: Mon, 21 Aug 2006 18:34:00 -0000 [thread overview]
Message-ID: <44E9D816.9070809@cn.ibm.com> (raw)
In-Reply-To: <20060821125031.GA16703@nevyn.them.org>
Daniel Jacobowitz wrote:
> 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?
But as far as I know, the endianess of struct "value" in the target memory is architecture depedent.
To name a example, in value_from_decfloat, we need to set the raw content of val to the dfp
constant user inputed, I am using this:
memcpy (value_contents_raw (val), decbytes, len);
decbytes is big-endian on all both x86 and ppc64 platforms. But the value_contents_raw (val) is
little endian on x86 / x86_64 system, and big endian on ppc64. So exchange_dfp is needed.
> Sorry to keep asking this; I really want to understand this one issue
> before I review the code.
no problem at all. I guess I didn't make myself understood. Or that I have some misunderstanding
about the problem (correct me if you find any). Maybe a direct talk might be good. Wish to see you
on gcc IRC (I see that you are gray when I post this).
Regards
- Wu Zhou
next prev parent reply other threads:[~2006-08-21 15:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-21 16:08 Wu Zhou
2006-08-21 18:30 ` Daniel Jacobowitz
2006-08-21 18:34 ` Wu Zhou [this message]
2006-08-22 1:31 ` Daniel Jacobowitz
2006-09-03 8:53 ` Wu Zhou
2006-09-03 16:44 ` Daniel Jacobowitz
2006-09-05 2:34 ` Wu Zhou
-- strict thread matches above, loose matches on Subject: below --
2006-08-01 9:55 Wu Zhou
2006-08-01 10:51 ` Wu Zhou
2006-08-08 18:16 ` Daniel Jacobowitz
2006-07-23 5:48 Wu Zhou
2006-07-23 14:02 ` Daniel Jacobowitz
2006-06-21 21:03 [RFC] decimal float point patch based on libdecnumber: testcase Wu Zhou
2006-06-21 23:36 ` [RFC] decimal float point patch based on libdecnumber: gdb patch Wu Zhou
2006-06-22 3:27 ` Eli Zaretskii
2006-06-22 14:18 ` Wu Zhou
2006-07-12 20:39 ` Daniel Jacobowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44E9D816.9070809@cn.ibm.com \
--to=woodzltc@cn.ibm.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox