Version 5 (modified by lpolzer, 11 years ago) (diff)


Assorted internals tidbits

Compiler backend

VINSN   Virtual instruction (probably akin to SBCL's VOPs)
  LAP   Lisp Assembly Parser; compiles SEXPs into opcodes

VINSN macros

<-    copy register
@     label
@=    label (aligned)
->    jump to label
^     branch
?     register (unwired)
$     register (wired)

(from compiler/X86/x862.lisp)

Operand syntax

(% x)    register
($ x)    immediate
(@ x)    memory operand; x ~ ([seg] [disp] [base] [index] [scale])
x        labelref
(:rcontext x)   memory operand, using segment register or gpr; see @ for syntax of x.
(:self fn)      self-reference

(from compiler/X86/x86-lap.lisp)


  • x86: the FS register contains a pointer to the current TCR.
  • x86: the TCR is defined in lisp-kernel/x86-constants32.h (struct tcr)