| | 1 | == Frontend == |
| | 2 | See files in compiler/ with nx in their name. |
| | 3 | |
| | 4 | == Backend == |
| | 5 | === VINSNs === |
| | 6 | VINSN means ''Virtual Instruction''. |
| | 7 | |
| | 8 | Those likely belong to the same category of SBCL's Virtual Operations (VOPs). |
| | 9 | |
| | 10 | {{{ |
| | 11 | <- copy register |
| | 12 | @ label |
| | 13 | @= label (aligned) |
| | 14 | -> jump to label |
| | 15 | ^ branch |
| | 16 | ? register (unwired) |
| | 17 | $ register (wired) |
| | 18 | }}} |
| | 19 | |
| | 20 | (from compiler/X86/x862.lisp) |
| | 21 | |
| | 22 | === LAP === |
| | 23 | LAP means ''Lisp Assembly Parser'' (probably). It's a DSL that compiles into opcodes. |
| | 24 | |
| | 25 | ==== Operand syntax ==== |
| | 26 | {{{ |
| | 27 | (% x) register |
| | 28 | ($ x) immediate |
| | 29 | (@ x) memory operand; x ~ ([seg] [disp] [base] [index] [scale]) |
| | 30 | x labelref |
| | 31 | (:rcontext x) memory operand, using segment register or gpr; see @ for syntax of x. |
| | 32 | (:self fn) self-reference |
| | 33 | }}} |
| | 34 | |
| | 35 | (from compiler/X86/x86-lap.lisp) |