Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. COVery much agreed. On many platforms, you'd like to pass arguments in registers for speed, but you don't want to use all the registers for argument passing. But different platforms have different numbers of registers. Some platforms have no floating-point registers at all. Any completely general ABI would be suboptimal on nearly every platform.
      singulars
    2. COOne of the reasons C became so popular was because it didn't specify a standard ABI (IIRC, Pascal did). Thus, compiler writers could do whatever worked best. Initially, everyone did pretty much the same thing in terms of stack framing, but later, for architectures like DSPs, they started to specify ways to pack function arguments into registers, greatly reducing the number of instructions and memory transactions needed for a function call.
      singulars
    3. COI remember an architecture which had a 32-register file visible to the programmer, but implemented it in hardware as a 512-register block with a sliding window. r0-r7 were parameters passed to a called function, r8-r15 were function locals, r16-r23 were parameters passed in from the function's caller, and r24-r31 were globals, including the stack pointer. r24-31 would always point to the same place, but the others were mapped through a window that would slide down 16 registers with a function call (mapping the caller's r0-7 to the callee's r16-r23), then slide back 16 on return.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload