From: Jerome Guitton <guitton@act-europe.fr>
To: Kevin Buettner <kevinb@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA] powerpc - extract a float return value
Date: Fri, 23 Apr 2004 14:38:00 -0000 [thread overview]
Message-ID: <20040423143821.GA27351@act-europe.fr> (raw)
In-Reply-To: <20040421105415.12577df1@saguaro>
[-- Attachment #1: Type: text/plain, Size: 1087 bytes --]
Kevin Buettner (kevinb@redhat.com):
> The rs6000 return value code will need to be revamped to not refer to
> DEPRECATED_REGISTER_BYTE. And, in fact, it probably ought to be
> restructured to use the mechanisms found in ppc-linux.c. See
> ppc_linux_return_value() and ppc_sysv_abi_return_value(). This
> is not a barrier to getting your current patch in; I only mention
> it in case you wish to tackle this bit of work too.
Sorry, I would not really easy for me, I do not have a convenient
setup for PPC (that is actually the reason why it took me 3 days
to be able to test against the testsuite :-)
> > I have not yet tested it against the testsuite, I will do that
> > tomorrow. In the meantime, if you have comments I would be happy to
> > address them!
>
> Please let me know the results of your tests. If they look good,
> please commit your patch.
OK, thanks. Tested on the ppc-elf simulator, on a x86-linux host.
No regression.
I have slightly modified the patch, I do not see any reason to have a special
case for doubles now. OK to apply with this change?
--
Jerome
[-- Attachment #2: diff.3 --]
[-- Type: text/plain, Size: 1489 bytes --]
2004-04-23 Jerome Guitton <guitton@gnat.fr>
* rs6000-tdep.c (rs6000_extract_return_value): When extracting a float,
use convert_typed_floating to get the appropriate format.
Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.191
diff -u -p -r1.191 rs6000-tdep.c
--- rs6000-tdep.c 1 Apr 2004 21:00:59 -0000 1.191
+++ rs6000-tdep.c 21 Apr 2004 10:14:03 -0000
@@ -1251,22 +1251,15 @@ rs6000_extract_return_value (struct type
if (TYPE_CODE (valtype) == TYPE_CODE_FLT)
{
- double dd;
- float ff;
/* floats and doubles are returned in fpr1. fpr's have a size of 8 bytes.
We need to truncate the return value into float size (4 byte) if
necessary. */
- if (TYPE_LENGTH (valtype) > 4) /* this is a double */
- memcpy (valbuf,
- ®buf[DEPRECATED_REGISTER_BYTE (FP0_REGNUM + 1)],
- TYPE_LENGTH (valtype));
- else
- { /* float */
- memcpy (&dd, ®buf[DEPRECATED_REGISTER_BYTE (FP0_REGNUM + 1)], 8);
- ff = (float) dd;
- memcpy (valbuf, &ff, sizeof (float));
- }
+ convert_typed_floating (®buf[DEPRECATED_REGISTER_BYTE
+ (FP0_REGNUM + 1)],
+ builtin_type_double,
+ valbuf,
+ valtype);
}
else if (TYPE_CODE (valtype) == TYPE_CODE_ARRAY
&& TYPE_LENGTH (valtype) == 16
next prev parent reply other threads:[~2004-04-23 14:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-20 18:03 Jerome Guitton
2004-04-21 17:54 ` Kevin Buettner
2004-04-21 19:40 ` Andrew Cagney
2004-04-23 14:38 ` Jerome Guitton [this message]
2004-04-23 16:03 ` Kevin Buettner
2004-04-23 16:23 ` Jerome Guitton
2004-04-24 0:03 ` Andrew Cagney
2004-04-23 16:39 ` Jerome Guitton
2004-04-23 19:14 ` Joel Brobecker
2004-04-24 0:03 ` Andrew Cagney
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=20040423143821.GA27351@act-europe.fr \
--to=guitton@act-europe.fr \
--cc=gdb-patches@sources.redhat.com \
--cc=kevinb@redhat.com \
/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