Next: , Previous: , Up: machinery   [Index]


16.2 Special CPU registers

While running Scheme code Vicare assigns a special role to some CPU registers.

Accumulator and Arguments count Register, AAR, AA-REGISTER

It is used to hold:

it is also used as general purpose register. On a 32-bit i686 CPU it is the register EAX.

Allocation Pointer Register, APR, AP-REGISTER

Holds the address of the first free machine word in the memory segment of the Scheme heap nursery. On a 32-bit i686 CPU it is the register EBP.

Closure Pointer Register, CPR, CP-REGISTER

Holds the tagged address of a machine word in the Scheme heap, representing the reference to the closure object being executed; when no closure is being executed: it is set to zero. It is used to enter the execution of the closure code and to access the free variables the closure is closed upon. On a 32-bit i686 CPU it is the register EDI.

Frame Pointer Register, FPR, FP-REGISTER

Holds the address of the machine word in the memory segment of the Scheme stack holding the return address of the last performed function call. It is used to access the machine words on the stack containing function arguments and local variables. On a 32-bit i686 CPU it is the register ESP.

Process Control Register, PCR, PC-REGISTER

Holds the raw address of a machine word in the C language heap; such address references the first word in the PCB data structure. On a 32-bit i686 CPU it is the register ESI.


Next: , Previous: , Up: machinery   [Index]