Skip to content
Snippets Groups Projects
Commit 4aa6060a authored by wlott's avatar wlott
Browse files

Added ALLOC and FLAGS regs.

Moved global state regs (CSP, BSP, NULL, etc) into saved regs so that call
out to C can be faster.
parent 53565f66
No related branches found
No related tags found
No related merge requests found
Reg CN PR C Usage Lisp Name Lisp Usage GC
-------------------------------------------------------------------------------------------------
R0 - - Wired Zero ZERO Wired Zero N
R1 - N Assembler Temp LIP Lisp Interior Pointer Special
R2 v0 N { Expr Eval, Results } NL0 Non-Lisp Reg N
R3 v1 N { Static Link } NL1 Non-Lisp Reg N
R4 a0 N Integer Arg NL2 Non-Lisp Reg N
R5 a1 N Integer Arg NL3 Non-Lisp Reg N
R6 a2 N Integer Arg NL4 Non-Lisp Reg N
R7 a3 N Integer Arg NL5/NARGS Non-Lisp Reg / Arg Count N
R8 t0 N Temporary Reg L0 Lisp Reg Y
R9 t1 N Temporary Reg L1 Lisp Reg Y
R10 t2 N Temporary Reg L2 Lisp Reg Y
R11 t3 N Temporary Reg L3 Lisp Reg Y
R12 t4 N Temporary Reg L4 Lisp Reg Y
R13 t5 N Temporary Reg L5/LEX-ENV Lisp Reg / Lexical Environment Y
R14 t6 N Temporary Reg L6/OLD-CONT Lisp Reg / Old Continuation Y
R15 t7 N Temporary Reg L7/CALL-NAME Lisp Reg / Call Name Y
R16 s0 Y Saved Temporary Reg L8/A0 Lisp Reg / Arg Y
R17 s1 Y Saved Temporary Reg L9/A1 Lisp Reg / Arg Y
R18 s2 Y Saved Temporary Reg L10/A2 Lisp Reg / Arg Y
R19 s3 Y Saved Temporary Reg L11/A3 Lisp Reg / Arg Y
R20 s4 Y Saved Temporary Reg L12/A4 Lisp Reg / Arg Y
R21 s5 Y Saved Temporary Reg L13/A5 Lisp Reg / Arg Y
R22 s6 Y Saved Temporary Reg L14/ARGS Lisp Reg / Argument Pointer Y
R23 s7 Y Saved Temporary Reg L15/LRA Lisp Reg / Lisp Return Address Y
R24 t8 N Temporary Reg BSP Binding Stack Pointer Special
R25 t9 N Temporary Reg CSP Control Stack Pointer Special
R26 k0 - Kernel Reg (reserved) - Kernel Reg (reserved) N
R27 k1 - Kernel Reg (reserved) - Kernel Reg (reserved) N
R28 gp - Global Pointer NULL Null / Nil Constant Y
R29 sp - Stack Pointer NSP Number Stack Pointer N
R30 s8 Y Saved Temporary Reg CODE Code Pointer Y
R31 ra N Return Addr / Temp CONT Current Continuation Special
Global Lisp Registers:
NULL - Wired NIL register.
CSP - Control stack pointer.
CONT - Continuation pointer.
NSP - Number stack pointer.
BSP - Binding stack pointer.
FLAGS - Special flags register.
ALLOC - Allocation pointer.
CODE - Current code object.
Linkage Registers:
NARGS - Number of arguments or values.
LEXENV - Lexical Environment being called.
OLDCONT - Old continuation pointer.
CNAME - Name of called function.
A0-A5 - First 6 arguments.
ARGS - Argument pointer.
LRA - Lisp Return Address.
Reg CN PR C Usage LN Lisp Usage GC
------------------------------------------------------------------------
R0 - - Wired Zero ZERO Wired Zero N
R1 - N Assembler Temp LIP Lisp-Interior Special
R2 v0 N Results NL0 Non-Lisp Reg N
R3 v1 N Static Link NL1 Non-Lisp Reg N
R4 a0 N Integer Arg NL2 Non-Lisp Reg N
R5 a1 N Integer Arg NL3 Non-Lisp Reg N
R6 a2 N Integer Arg NL4 Non-Lisp Reg N
R7 a3 N Integer Arg NARGS Arg Count N
R8 t0 N Temporary Reg A0 Argument Y
R9 t1 N Temporary Reg A1 Argument Y
R10 t2 N Temporary Reg A2 Argument Y
R11 t3 N Temporary Reg A3 Argument Y
R12 t4 N Temporary Reg A4 Argument Y
R13 t5 N Temporary Reg A5 Argument Y
R14 t6 N Temporary Reg CNAME Call Name Y
R15 t7 N Temporary Reg LEXENV Lexical Env Y
R16 s0 Y Saved Temp Reg ARGS Arg Pointer Y
R17 s1 Y Saved Temp Reg OLDCONT Old Continuation Y
R18 s2 Y Saved Temp Reg LRA Lisp Return Address Y
R19 s3 Y Saved Temp Reg L0 Random Lisp Reg Y
R20 s4 Y Saved Temp Reg NULL Null / Nil Constant Y
R21 s5 Y Saved Temp Reg BSP Binding Stack Pointer Special
R22 s6 Y Saved Temp Reg CONT Current Continuation Special
R23 s7 Y Saved Temp Reg CSP Control Stack Pointer Special
R24 t8 N Temporary Reg FLAGS Flags register N
R25 t9 N Temporary Reg ALLOC Allocation Pointer Special
R26 k0 - (reserved) - Kernel Reg (reserved) N
R27 k1 - (reserved) - Kernel Reg (reserved) N
R28 gp - Global Pointer L1 Random Lisp Reg Y
R29 sp - Stack Pointer NSP Number Stack Pointer N
R30 s8 Y Saved Temp Reg CODE Code Pointer Y
R31 ra N Return Addr L2 Random Lisp Reg Y
Key:
CN == C/UNIX name
NL == Lisp name
PR == Preserved on C function call (callee saves)
GC == Considered as a root for GC
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment