From: "David S. Miller" <davem@redhat.com>
To: msnyder@redhat.com
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA] Locate sparc64 arguments correctly
Date: Tue, 23 Apr 2002 21:57:00 -0000 [thread overview]
Message-ID: <20020423.214814.43517477.davem@redhat.com> (raw)
In-Reply-To: <3CC5B8E0.A61081A7@redhat.com>
From: Michael Snyder <msnyder@redhat.com>
Date: Tue, 23 Apr 2002 12:41:20 -0700
"David S. Miller" wrote:
> Two problems:
>
> 1) Debugging information encodes LOC_ARG/LOC_REF_ARG offsets
> with the Sparc64 stack bias included, we keep track of the
> frame pointer with the stack bias removed on sparc64.
>
> sparc64_frame_args_address takes care of that.
This is a good idea, but FRAME_ARGS_ADDRESS is multi-arched.
Can you use that implementation?
I do this in my patches, as per:
> --- sparc-tdep.c.~1~ Sat Apr 20 01:46:27 2002
> +++ sparc-tdep.c Sat Apr 20 01:52:38 2002
> @@ -2798,6 +2798,16 @@ sparc64_register_byte (int regno)
> return 64 * 8 + (regno - 80) * 8;
> }
>
> +/* Debugging information stores LOC_ARG/LOC_REF_ARG offsets with the
> + sparc64 stack bias present, this undoes that so that users of
> + FRAME_ARGS_ADDRESS use the right location. */
> +
> +static CORE_ADDR
> +sparc64_frame_args_address (struct frame_info *fi)
> +{
> + return fi->frame - 2047;
> +}
> +
I have to do the tm-sp64.h non-multi-arch'd version too in order
to prevent potential breakage until Sparc is %100 multi-arch'd.
> 2) REG_STRUCT_HAS_ADDR was wrong, structs larger than 16 bytes
> are passed by reference.
Have you verified that this is the case on Solaris?
This is what the GCC backend uses, and is what the Sysv4 Sparc 64-bit
ABI specifies.
> No regression test changes, likely because these things aren't
> hit by the testsuite.
How about extending testsuite/gdb.base/structs.[c exp]
so that they cover this case?
The reason the regressions didn't change turned out to not be because
the testsuite didn't test it, it was because the current sparc64 arg
passing code would fix up these case by itself.
Franks a lot,
David S. Miller
davem@redhat.com
next prev parent reply other threads:[~2002-04-24 4:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-20 2:17 David S. Miller
2002-04-23 12:53 ` Michael Snyder
2002-04-23 21:57 ` David S. Miller [this message]
2002-04-23 16:09 ` Kevin Buettner
2002-04-24 8:33 ` David S. Miller
2002-04-24 9:42 ` Kevin Buettner
2002-04-24 9:53 ` David S. Miller
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=20020423.214814.43517477.davem@redhat.com \
--to=davem@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=msnyder@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