G
Guest
Guest
Archived from groups: comp.arch,comp.sys.ibm.pc.hardware.chips,comp.sys.intel (More info?)
"Rob Warnock" <rpw3@rpw3.org> wrote in message
news:co-dnW_qYs4tbybdRVn-jw@speakeasy.net...
> spinlock <NullVoid@att.net> wrote:
> +---------------
> | Did you say "stack fragmentation" and "argument stack" and "linkage
stack"?
> +---------------
>
> Yes, exactly so!
You posted to COMP.SYS.INTEL, I dont think they make the 29000.
The x86 architecture has one stack.
Regardless, no stack can be fragmented. Sorry, they are a singly-linked
list.
No way to delete in the middle.
>
> +---------------
> | 1st) There is only one stack, every thing goes on it.
> |
> | 2nd) The "stack" is linear, controlled by a single
> | pointer(ESP), there is no way to have fragmentation.
> +---------------
>
> Not in the Am29000 CPU family!! The linkage, register spill/fill, and
> "small argument" stack pointer was register GR1, and the "large argument"
> (and any addressed arguments) stack pointer was register MSP [a.k.a.
GR125].
>
> And there have certainly been other machines which didn't use single
> linear stacks, e.g., early IBM S/360 code which statically allocated
> register save blocks in the callers, which the callees dynamically
> linked and unlinked (with back-pointers) without moving or "growing"
> anything. The call stack was this a singly-linked list of static blocks
> randomly scattered all over memory. [Yes, this did *not* support
> recursive routines! At least, not this default linkage.]
>
>
> -Rob
>
> -----
> Rob Warnock <rpw3@rpw3.org>
> 627 26th Avenue <URL:http://rpw3.org/>
> San Mateo, CA 94403 (650)572-2607
>
"Rob Warnock" <rpw3@rpw3.org> wrote in message
news:co-dnW_qYs4tbybdRVn-jw@speakeasy.net...
> spinlock <NullVoid@att.net> wrote:
> +---------------
> | Did you say "stack fragmentation" and "argument stack" and "linkage
stack"?
> +---------------
>
> Yes, exactly so!
You posted to COMP.SYS.INTEL, I dont think they make the 29000.
The x86 architecture has one stack.
Regardless, no stack can be fragmented. Sorry, they are a singly-linked
list.
No way to delete in the middle.
>
> +---------------
> | 1st) There is only one stack, every thing goes on it.
> |
> | 2nd) The "stack" is linear, controlled by a single
> | pointer(ESP), there is no way to have fragmentation.
> +---------------
>
> Not in the Am29000 CPU family!! The linkage, register spill/fill, and
> "small argument" stack pointer was register GR1, and the "large argument"
> (and any addressed arguments) stack pointer was register MSP [a.k.a.
GR125].
>
> And there have certainly been other machines which didn't use single
> linear stacks, e.g., early IBM S/360 code which statically allocated
> register save blocks in the callers, which the callees dynamically
> linked and unlinked (with back-pointers) without moving or "growing"
> anything. The call stack was this a singly-linked list of static blocks
> randomly scattered all over memory. [Yes, this did *not* support
> recursive routines! At least, not this default linkage.]
>
>
> -Rob
>
> -----
> Rob Warnock <rpw3@rpw3.org>
> 627 26th Avenue <URL:http://rpw3.org/>
> San Mateo, CA 94403 (650)572-2607
>