SBCL memo

  • src/compiler/ppc/insts.lisp "instruction set definition for PPC" でインストラクションを設定。多段回のマクロによる定義でちょっと追い辛い。
  • うーん、なんとも複雑だ。以下の流れも怪しい。
  • compile (src/compiler/target-main.lisp) -> compile-in-lexenv -> actually-compile -> %compile (src/compiler/main.lisp) -> make-functional-from-toplevel-lambda
  • emit などという単語が出てきてちょっと嬉しくなる。
CL-USER> (in-package "SB-ASSEM")
#<PACKAGE "SB-ASSEM">
SB-ASSEM> *assem-instructions*
#<HASH-TABLE :TEST EQUAL :COUNT 333 {103AA241}>
SB-ASSEM> (maphash (lambda (k v)
		     (format t "~a ~a~%" k v)) *assem-instructions*)
...
ADDI ADDI-INST-EMITTER
ADDIS ADDIS-INST-EMITTER
BC BC-INST-EMITTER
BCL BCL-INST-EMITTER
...
BL BL-INST-EMITTER
...
NOP NOP-INST-EMITTER
...
ADDC ADDC-INST-EMITTER
AND AND-INST-EMITTER
ADD ADD-INST-EMITTER
...
NIL