comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Pascal Calling Convention
Date: Mon, 28 Mar 2011 21:32:54 -0500
Date: 2011-03-28T21:32:54-05:00	[thread overview]
Message-ID: <imrgcv$22m$1@munin.nbi.dk> (raw)
In-Reply-To: wcck4fjc99j.fsf@shell01.TheWorld.com

"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message 
news:wcck4fjc99j.fsf@shell01.TheWorld.com...
> "Randy Brukardt" <randy@rrsoftware.com> writes:
>
>> I can't speak for Keith, but most of the hardware architectures that I've
>> worked on have had at least some architectual support for a "hardware"
>> stack. Not only the Push/Pop instructions of the X86 for instance, but 
>> also
>> the special SS stack segment register.
>
> True, but nobody uses the SS register in any nontrivial way, anymore.
> The segmentation stuff of 8086 is pretty much vestigial at this point.

Not relevant to this discussion, but I think that's sad, as a lot of the 
security problems inherent in buffer overflows would have been avoided by 
simply keeping separate code and data segments. That would prevent code on 
the stack from being executed. (We found a lot of problems in Janus/Ada by 
keeping the code and data segments in our DOS Extender compilers completely 
separate; it's been quite a bit harder to find those problems on Windows or 
Unix systems that don't properly separate them.) The problem with segments 
is segments that are too small, not the basic idea.

...
> "Stack" is a pretty well-understood term in computer science,

Yes, of course.

> and I think if an x86-centric person insists that "the stack"
> must be a certain way based on the hardware/architecture,
> they're the one inventing confusing terminology.

Right again. But it seems to me that is a straw man.

> Keith is trying to clarify, by calling that contiguous thing
> a "hardware stack", but I'm saying the word "hardware" doesn't
> capture the intended meaning.

It does on most architectures. I don't believe I've ever seen a modern 
architecture without some sort of Call/Return instructions. Some of them 
allow use of any register, so there isn't a dedicated stack register.

In any case, I read your reply as saying that it didn't make sense to ever 
refer to a "hardware stack", which makes no sense to me. As soon as you are 
talking about hardware or implementations, you are talking in a 
target-specific way, so it doesn't make much sense to make any 
generalizations. It makes perfect sense to talk about a hardware stack on an 
X86; if you are talking about some other target, maybe not.

                                     Randy.





  reply	other threads:[~2011-03-29  2:32 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23 21:37 Pascal Calling Convention Shark8
2011-03-23 23:25 ` Yannick Duchêne (Hibou57)
2011-03-24  0:24   ` Randy Brukardt
2011-03-24  0:43     ` Yannick Duchêne (Hibou57)
2011-03-24  2:04       ` Shark8
2011-03-25 15:40         ` Yannick Duchêne (Hibou57)
     [not found]       ` <F8mdnYCca6tRJBfQnZ2dnUVZ_s-dnZ2d@earthlink.com>
2011-03-24 19:20         ` Keith Thompson
2011-03-25 16:04           ` Robert A Duff
2011-03-25 17:02             ` Hyman Rosen
2011-03-25 17:09               ` Robert A Duff
2011-03-25 17:35                 ` Hyman Rosen
2011-03-26 19:51                   ` Robert A Duff
2011-03-25 17:51             ` Keith Thompson
2011-03-26 20:46               ` Robert A Duff
2011-03-27  2:24                 ` Randy Brukardt
2011-03-28 15:41                   ` Adam Beneschan
2011-03-28 19:52                   ` Robert A Duff
2011-03-29  2:32                     ` Randy Brukardt [this message]
2011-03-29  6:06                       ` Shark8
2011-03-29 23:45                         ` Randy Brukardt
2011-03-29 19:19                       ` Robert A Duff
2011-03-30  0:02                         ` Randy Brukardt
2011-03-30 12:40                           ` Robert A Duff
2011-03-30 19:40                             ` Randy Brukardt
2011-03-30 20:56                               ` tmoran
2011-03-30 22:34                                 ` Robert A Duff
2011-03-31 21:00                                   ` Randy Brukardt
2011-03-28 20:29                 ` Hyman Rosen
2011-03-28 21:16                   ` Adam Beneschan
2011-03-28 21:26                     ` Hyman Rosen
2011-03-28 22:08                       ` Adam Beneschan
2011-03-28 23:47                         ` Georg Bauhaus
2011-03-29 12:23                           ` stefan-lucks
2011-03-29 13:10                             ` Hyman Rosen
2011-03-30 13:42                             ` Phil Clayton
2011-03-31  7:40                               ` Phil Clayton
2011-03-29  2:48                         ` Hyman Rosen
2011-03-29 18:30                           ` Robert A Duff
2011-03-29 23:25                             ` Adam Beneschan
2011-03-30 12:50                               ` Robert A Duff
2011-03-30 14:47                                 ` Adam Beneschan
2011-03-30 18:10                                   ` Robert A Duff
2011-03-29  3:01                         ` Hyman Rosen
2011-03-29 18:22                           ` Robert A Duff
2011-03-26 21:30           ` Florian Weimer
2011-03-27 16:18             ` Robert A Duff
2011-03-27 16:38               ` Florian Weimer
2011-03-27 16:56                 ` Robert A Duff
2011-03-24  2:15   ` Shark8
2011-03-24  0:38 ` ytomino
2011-03-24  2:23   ` Shark8
2011-03-24 21:29 ` Gautier write-only
2011-03-25 12:47 ` Marco
2011-03-25 15:38   ` Yannick Duchêne (Hibou57)
2011-03-26  8:39     ` ObjectAda [was: Pascal Calling Convention] Gautier write-only
2011-03-26 14:05       ` Marco
2011-03-26 21:58         ` Gautier write-only
replies disabled

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