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 Global Lisp Registers:
------------------------------------------------------------------------------------------------- NULL - Wired NIL register.
R0 - - Wired Zero ZERO Wired Zero N CSP - Control stack pointer.
R1 - N Assembler Temp LIP Lisp Interior Pointer Special CONT - Continuation pointer.
R2 v0 N { Expr Eval, Results } NL0 Non-Lisp Reg N NSP - Number stack pointer.
R3 v1 N { Static Link } NL1 Non-Lisp Reg N BSP - Binding stack pointer.
R4 a0 N Integer Arg NL2 Non-Lisp Reg N FLAGS - Special flags register.
R5 a1 N Integer Arg NL3 Non-Lisp Reg N ALLOC - Allocation pointer.
R6 a2 N Integer Arg NL4 Non-Lisp Reg N CODE - Current code object.
R7 a3 N Integer Arg NL5/NARGS Non-Lisp Reg / Arg Count N
R8 t0 N Temporary Reg L0 Lisp Reg Y Linkage Registers:
R9 t1 N Temporary Reg L1 Lisp Reg Y NARGS - Number of arguments or values.
R10 t2 N Temporary Reg L2 Lisp Reg Y LEXENV - Lexical Environment being called.
R11 t3 N Temporary Reg L3 Lisp Reg Y OLDCONT - Old continuation pointer.
R12 t4 N Temporary Reg L4 Lisp Reg Y CNAME - Name of called function.
R13 t5 N Temporary Reg L5/LEX-ENV Lisp Reg / Lexical Environment Y A0-A5 - First 6 arguments.
R14 t6 N Temporary Reg L6/OLD-CONT Lisp Reg / Old Continuation Y ARGS - Argument pointer.
R15 t7 N Temporary Reg L7/CALL-NAME Lisp Reg / Call Name Y LRA - Lisp Return Address.
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 Reg CN PR C Usage LN Lisp Usage GC
R19 s3 Y Saved Temporary Reg L11/A3 Lisp Reg / Arg Y ------------------------------------------------------------------------
R20 s4 Y Saved Temporary Reg L12/A4 Lisp Reg / Arg Y R0 - - Wired Zero ZERO Wired Zero N
R21 s5 Y Saved Temporary Reg L13/A5 Lisp Reg / Arg Y R1 - N Assembler Temp LIP Lisp-Interior Special
R22 s6 Y Saved Temporary Reg L14/ARGS Lisp Reg / Argument Pointer Y R2 v0 N Results NL0 Non-Lisp Reg N
R23 s7 Y Saved Temporary Reg L15/LRA Lisp Reg / Lisp Return Address Y R3 v1 N Static Link NL1 Non-Lisp Reg N
R24 t8 N Temporary Reg BSP Binding Stack Pointer Special R4 a0 N Integer Arg NL2 Non-Lisp Reg N
R25 t9 N Temporary Reg CSP Control Stack Pointer Special R5 a1 N Integer Arg NL3 Non-Lisp Reg N
R26 k0 - Kernel Reg (reserved) - Kernel Reg (reserved) N R6 a2 N Integer Arg NL4 Non-Lisp Reg N
R27 k1 - Kernel Reg (reserved) - Kernel Reg (reserved) N R7 a3 N Integer Arg NARGS Arg Count N
R28 gp - Global Pointer NULL Null / Nil Constant Y R8 t0 N Temporary Reg A0 Argument Y
R29 sp - Stack Pointer NSP Number Stack Pointer N R9 t1 N Temporary Reg A1 Argument Y
R30 s8 Y Saved Temporary Reg CODE Code Pointer Y R10 t2 N Temporary Reg A2 Argument Y
R31 ra N Return Addr / Temp CONT Current Continuation Special 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: Key:
CN == C/UNIX name CN == C/UNIX name
NL == Lisp name
PR == Preserved on C function call (callee saves) PR == Preserved on C function call (callee saves)
GC == Considered as a root for GC 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