Re: Recursive Call



Arnold Trembley wrote:


Joe Zitzelberger wrote:

(snip) Even the IBM mainframe, originally a non-stack machine, made hardware allowances for stack-style things (e.g. Program Call & Return) somewhere in the 70's.


Program Call and Return was implemented on System 370 architecture without hardware or software stacks, to the best of my knowledge. And even today, IBM Z-series mainframes still do not have hardware stacks, as far as I know. Perhaps someone can correct me if my impression is wrong.



At least on ESA architecture and later the PROGRAM CALL and related instructions do indeed use hardware-supported stacks, the Linkage Stack, which is allocated in 64 KiB blocks and tracked via hardware control registers. The Program Call instruction and its management complexity is generally hidden from application code, as it main (only?) usage from the application code standpoint is to issue function requests to the operating system that previously would have required using SVC Supervisor Calls.
--
Joel C. Ewing, Fort Smith, AR jREMOVEcCAPSewing@xxxxxxx
.




Relevant Pages

  • Re: ANSI C question about volatile
    ... The *intent* of the C Standard is clear: the hardware has some ... Only one "bus width" is supported, ... the register numbers might change in the process). ... programmer might use the "bis" or "bic" instructions on the VAX: ...
    (comp.lang.c)
  • Re: implementing Futex
    ... feature atomic instructions, ... This area is prepared by the Kernel and holds functions for all ... Moreover it should be possible to allow "hardware" designers to ... NIOS-like FPGA-processor to provide some hardware support for atomicness ...
    (Linux-Kernel)
  • Re: IBM System z9
    ... add hardware features to speed up operations for which there ... If one is going to add new instructions to a machine at *all*, ... large company that sells computers. ... Decimal floating point, therefore, offers to extend this convenience - ...
    (comp.arch)
  • Re: Lisp in hardware
    ... The general experience of the 80s seems to have been that you should ... Lisp efforts mentioned before. ... project for some examples where special hardware didn't work so well. ... sets are irrelevant since all instructions are dynamically broken down ...
    (comp.lang.lisp)
  • Re: write statement output buffer flush off on Sun
    ... > routine is usually greater than the cost of checking for a nonzero ... > are passed on the stack, passing the addresses involves memory traffic. ... branch - and it may involve additional instructions on some ... hardware, a conditional branch costs about the same whether it's ...
    (comp.lang.fortran)