comp.lang.ada
 help / color / mirror / Atom feed
From: "Frank J. Lhota" <NOSPAM.FrankLho@rcn.com>
Subject: Re: GNAT parameter passing, C-style?
Date: Thu, 1 Jan 2004 11:32:45 -0500
Date: 2004-01-01T11:32:45-05:00	[thread overview]
Message-ID: <3ff44baf$0$4754$61fed72c@news.rcn.com> (raw)
In-Reply-To: bAXIb.28439$tY5.3073@nwrdny01.gnilink.net

"Hyman Rosen" <hyrosen@mail.com> wrote in message
news:bAXIb.28439$tY5.3073@nwrdny01.gnilink.net...
> Even if parameters are passed on the stack, there is no need
> to process the arguments from right to left. You can just
> subtract the appropriate amount from the stack pointer and
> then fill in that space by processing the arguments from left
> to right.

The problem, again, is with variable argument lists. For functions with
variable argument lists, such as like printf and fprintf , the "appropriate
amount" will vary from call to call. In any such function, there are one or
more fixed parameters, from which one can the number and type of the
remaining parameters. Before we can determine the size of the argument
block, we must be able to retrieve the first few arguments. Given the "Last
in, First out" nature of a stack, the easiest way to do that is to push the
parameters on the stack in reverse order. With printf, for example, the
format string is the last parameter pushed on the stack. Within printf, the
format string is at the top of the stack, and it can be used to determine
the rest of the parameters.





  reply	other threads:[~2004-01-01 16:32 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-26 10:37 GNAT parameter passing, C-style? Luke A. Guest
2003-12-26 14:20 ` Marin David Condic
2003-12-26 14:51   ` Hyman Rosen
2003-12-26 15:07     ` Marin David Condic
2003-12-26 15:39       ` Luke A. Guest
2003-12-26 17:03         ` Hyman Rosen
2003-12-26 17:08           ` Luke A. Guest
2003-12-26 17:27             ` Luke A. Guest
2003-12-26 18:21               ` Frank J. Lhota
2003-12-26 19:06                 ` Frank J. Lhota
2003-12-31 10:23                 ` Keith Thompson
2003-12-31 14:45                   ` Frank J. Lhota
2003-12-31 15:05                     ` Hyman Rosen
2003-12-31 16:30                       ` Frank J. Lhota
2003-12-31 17:24                         ` Hyman Rosen
2003-12-31 19:05                           ` Frank J. Lhota
2003-12-31 19:38                             ` Hyman Rosen
2003-12-31 20:47                               ` Frank J. Lhota
2003-12-31 21:35                                 ` Hyman Rosen
2004-01-01  2:50                                   ` Frank J. Lhota
2004-01-01  5:20                                     ` Luke A. Guest
2004-01-01 16:06                                       ` Hyman Rosen
2004-01-01 16:32                                         ` Frank J. Lhota [this message]
2004-01-01 16:43                                           ` Hyman Rosen
2004-01-02  0:24                                             ` Frank J. Lhota
2004-01-02  4:09                                               ` Hyman Rosen
2004-01-02 13:29                                                 ` Frank J. Lhota
2004-01-01  5:17                                   ` Luke A. Guest
2004-01-01  5:09                                 ` Luke A. Guest
2004-01-02  1:17                                   ` tmoran
2004-01-01 17:18                                 ` Jano
2004-01-02  0:25                                   ` Frank J. Lhota
2004-01-07  6:37                         ` Dave Thompson
2004-01-01  3:38                       ` Marin David Condic
2004-01-01  5:28                         ` Luke A. Guest
2004-01-01 14:17                           ` Marin David Condic
2004-01-01 16:20                             ` Jeff C,
2004-01-02 13:47                               ` Marin David Condic
2004-01-05 21:06                     ` Keith Thompson
2004-01-06  3:42                       ` Robert I. Eachus
2004-01-06 20:54                         ` Keith Thompson
2004-01-06 23:45                           ` Robert I. Eachus
2004-01-06 13:46                       ` Frank J. Lhota
2003-12-27 14:22             ` Marin David Condic
2003-12-26 17:10         ` Martin Krischik
2003-12-26 19:04           ` Frank J. Lhota
2003-12-26 18:01   ` Georg Bauhaus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox