From: Andrew Cagney <ac131313@redhat.com>
To: Kevin Buettner <kevinb@redhat.com>
Cc: gdb-patches@sources.redhat.com,
peter.schauer@regent.e-technik.tu-muenchen.de
Subject: Re: [rfa/6.0] fix aix inferior calls
Date: Mon, 29 Sep 2003 20:33:00 -0000 [thread overview]
Message-ID: <3F789727.3080704@redhat.com> (raw)
In-Reply-To: <1030929202202.ZM15766@localhost.localdomain>
[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]
> On Sep 29, 4:05pm, Andrew Cagney wrote:
>
>
>> The PowerOpen doco requires at least 220 bytes of space, beyond the end
>> of stack, but forgets to mention that 220 isn't frame [16 byte] aligned.
>> Consequently, an assert checking stack alignment fails and inferior
>> calls on AIX doesn't work. That will learn me for not checking the math.
>>
>> Anyway, ok for "the late breaking 6.0 patch"?
>
>
> I didn't see a patch attached,
Doh!
> but if it allocates 220 bytes of space
> and then allocates any extra space to get to a 16 byte alignment, it's
> okay with me. (Anything which is roughly equivalent is fine too -
> e.g, aligning first and then allocating 224 bytes is okay too.)
The code looks like this:
sp = gdbarch_frame_align (current_gdbarch, old_sp);
/* NOTE: cagney/2003-08-13: Skip the "red zone". For some
ABIs, a function can use memory beyond the inner most stack
address. AMD64 called that region the "red zone". Skip at
least the "red zone" size before allocating any space on
the stack. */
if (INNER_THAN (1, 2))
sp -= gdbarch_frame_red_zone_size (current_gdbarch);
else
sp += gdbarch_frame_red_zone_size (current_gdbarch);
/* Still aligned? */
gdb_assert (sp == gdbarch_frame_align (current_gdbarch, sp));
so the attached modifies rs6000 to comply with red-zone's requirements vis:
> By default, zero bytes are allocated. The value must be aligned
> (@pxref{frame_align}).
Andrew
[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 1147 bytes --]
2003-09-29 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_gdbarch_init): Set the PowerOpen red zone
to 224, not 220.
Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.145.2.2
diff -u -r1.145.2.2 rs6000-tdep.c
--- rs6000-tdep.c 18 Aug 2003 20:12:31 -0000 1.145.2.2
+++ rs6000-tdep.c 29 Sep 2003 19:56:54 -0000
@@ -2948,8 +2948,10 @@
/* PPC64 SYSV. */
set_gdbarch_frame_red_zone_size (gdbarch, 288);
else if (!sysv_abi && wordsize == 4)
- /* PowerOpen / AIX 32 bit. */
- set_gdbarch_frame_red_zone_size (gdbarch, 220);
+ /* PowerOpen / AIX 32 bit. The saved area or red zone, consists
+ 19 4 byte GPRS + 18 8 byte FPRs giving a total of 220. Problem
+ is, 220 isn't frame (16 byte) aligned. Round it up to 224. */
+ set_gdbarch_frame_red_zone_size (gdbarch, 224);
set_gdbarch_deprecated_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
set_gdbarch_deprecated_push_return_address (gdbarch, ppc_push_return_address);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
next prev parent reply other threads:[~2003-09-29 20:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-29 20:05 Andrew Cagney
2003-09-29 20:22 ` Kevin Buettner
2003-09-29 20:33 ` Andrew Cagney [this message]
2003-09-29 20:55 ` Andreas Schwab
2003-09-30 0:31 ` Kevin Buettner
2003-09-30 21:13 ` 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=3F789727.3080704@redhat.com \
--to=ac131313@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=kevinb@redhat.com \
--cc=peter.schauer@regent.e-technik.tu-muenchen.de \
/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