Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [rfa:ppc] Eliminate write_sp, but how?
Date: Wed, 10 Sep 2003 21:39:00 -0000	[thread overview]
Message-ID: <3F5F9A15.8090801@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 937 bytes --]

This one liner isn't obvious.

The various ABIs have a requrement that the SP be decremented before 
writing anything to the stack (ignoring the red zone).  This is to stop 
signal handlers and the like trashing the callers stack.  The two PPC 
push_dummy_call (nee push_arguments) methods are already carefully 
complying to this requirement (setting SP before using the stack) and 
hence [deprecated] write_sp method which also sets the SP before a call 
is entirely redundant.

Thing is, I don't see any reason to exactly matching the ABI behavior 
(that thread is stopped so it won't get anything writing to its stack) 
and further, I think exactly matching the behavior makes the code harder 
to understand (I'm having trouble convincing my self that it does what I 
think it does :-).

So, in addition to eliminating deprecated write_sp, would it be ok to 
move the write SP code to the end of the push_dummy_call methods?

Andrew

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 733 bytes --]

2003-09-10  Andrew Cagney  <cagney@redhat.com>

	* rs6000-tdep.c (rs6000_gdbarch_init): Do not set
	"deprecated_dummy_write_sp".

Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.155
diff -u -r1.155 rs6000-tdep.c
--- rs6000-tdep.c	9 Sep 2003 22:41:47 -0000	1.155
+++ rs6000-tdep.c	10 Sep 2003 21:03:39 -0000
@@ -2896,7 +2896,6 @@
     set_gdbarch_print_insn (gdbarch, gdb_print_insn_powerpc);
 
   set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
-  set_gdbarch_deprecated_dummy_write_sp (gdbarch, deprecated_write_sp);
 
   set_gdbarch_num_regs (gdbarch, v->nregs);
   set_gdbarch_num_pseudo_regs (gdbarch, v->npregs);

             reply	other threads:[~2003-09-10 21:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-10 21:39 Andrew Cagney [this message]
2003-09-10 22:14 ` Kevin Buettner
2003-09-11 19:26   ` 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=3F5F9A15.8090801@redhat.com \
    --to=ac131313@redhat.com \
    --cc=gdb-patches@sources.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