From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8119 invoked by alias); 18 Sep 2002 16:24:32 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 8112 invoked from network); 18 Sep 2002 16:24:29 -0000 Received: from unknown (HELO localhost.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 18 Sep 2002 16:24:29 -0000 Received: from ges.redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id A533C3CC6 for ; Wed, 18 Sep 2002 12:24:27 -0400 (EDT) Message-ID: <3D88A8BB.2010007@ges.redhat.com> Date: Wed, 18 Sep 2002 09:24:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.0) Gecko/20020824 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com Subject: [rfa:doco] document frame_align() Content-Type: multipart/mixed; boundary="------------040500030001020104050605" X-SW-Source: 2002-09/txt/msg00401.txt.bz2 This is a multi-part message in MIME format. --------------040500030001020104050605 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 125 Hello, This documents the frame_align() architecture method. It also clarifies the behavior of stack_align(). ok? Andrew --------------040500030001020104050605 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" Content-length: 1849 2002-09-18 Andrew Cagney * gdbint.texinfo (Target Architecture Definition): Revise description of STACK_ALIGN. Add description of FRAME_ALIGN. Index: gdbint.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdbint.texinfo,v retrieving revision 1.100 diff -u -r1.100 gdbint.texinfo --- gdbint.texinfo 24 Aug 2002 00:21:37 -0000 1.100 +++ gdbint.texinfo 18 Sep 2002 16:19:24 -0000 @@ -3175,6 +3175,23 @@ represented by @var{fi} does not have a stack frame associated with it. Otherwise return 0. +@item frame_align (@var{address}) +@anchor frame_align +@findex frame_align +Define this to adjust @var{address} so that it meets the alignment +requirements for the start of a new stack frame. A stack frame's +alignment requirements are typically stronger than a target processors +stack alignment requirements (@pxref{STACK_ALIGN}). + +This function is used to ensure that, when creating a dummy frame, both +the initial stack pointer and (if needed) the address of the return +value are correctly aligned. + +Unlike @ref{STACK_ALIGN}, this function always adjusts the address in +the direction of stack growth. + +By default, no frame based stack alignment is performed. + @item FRAME_ARGS_ADDRESS_CORRECT @findex FRAME_ARGS_ADDRESS_CORRECT See @file{stack.c}. @@ -3690,9 +3707,15 @@ done. @item STACK_ALIGN (@var{addr}) +@anchor{STACK_ALIGN} @findex STACK_ALIGN -Define this to adjust the address to the alignment required for the -processor's stack. +Define this to increase @var{addr} so that it meets the alignment +requirements for the processor's stack. + +Unlike @ref{frame_align}, this function always adjusts @var{addr} +upwards. + +By default, no stack alignment is performed. @item STEP_SKIPS_DELAY (@var{addr}) @findex STEP_SKIPS_DELAY --------------040500030001020104050605--