;;; -*- Mode:LISP; Package:LAMBDA; Base:8 -*- ;;; ;;; (c) Copyright 1984 - Lisp Machine, Inc. ;;; ;MAKE SYMBOLS AVAILABLE AT BOTH COMPILE TIME & RUN TIME ;AND DECLARE THEM SPECIAL (defun setup-raven-symbols (sym-list) (do ((tail sym-list (cddr tail))) ((null tail)) (putprop (car tail) t 'special) (putprop (car tail) t 'constant) (set (car tail) (eval (cadr tail))))) (defconst raven-symbols '( ;; IR Fields RAV-IR-OP (Byte 2. 54.) RAV-OP-ALU 0 RAV-OP-BYTE 1 RAV-OP-JUMP 2 RAV-OP-DISPATCH 3 RAV-IR-A-SRC (Byte 10. 32.) RAV-IR-M-SRC (Byte 7. 42.) rav-ir-m-src-adr (byte 6 42.) RAV-FUNC-SRC-INDICATOR 100 rav-IR-FUNC-SRC-FLAG (byte 1 48. ) RAV-M-SRC-VMA 100 RAV-M-SRC-Q 101 RAV-M-SRC-MACRO.IR.DISPLACEMENT 102 RAV-M-SRC-MICRO-STACK-POINTER 103 ;aligned to right RAV-M-SRC-MCR 104 RAV-M-SRC-LC 105 RAV-M-SRC-L2-MAP-PHYSICAL-PAGE 106 RAV-M-SRC-DISP-CONSTANT 107 RAV-M-SRC-L1-MAP 110 RAV-M-SRC-L2-MAP-CONTROL 111 RAV-M-SRC-MACRO.IR 112 RAV-M-SRC-MACRO.IR.BRACH.OFFSET 113 RAV-M-SRC-MICRO-STACK 120 RAV-M-SRC-MICRO-STACK-DATA 120 RAV-M-SRC-MICRO-STACK-POP 121 RAV-M-SRC-MICRO-STACK-DATA-POP 121 RAV-M-SRC-MD 122 RAV-M-SRC-C-PDL-BUFFER-POINTER 140 RAV-M-SRC-C-PDL-BUFFER-INDEX 141 RAV-M-SRC-C-PDL-BUFFER-POINTER-POP 144 RAV-M-SRC-C-PDL-BUFFER-INDEX-DEC 145 RAV-M-SRC-PDL-BUFFER-POINTER 150 RAV-M-SRC-PDL-BUFFER-INDEX 151 RAV-M-SRC-PDL-BUFFER-POINTER-POP 154 RAV-M-SRC-PDL-BUFFER-INDEX-DEC 155 RAV-IR-DEST (Byte 13. 19.) RAV-ir-A-MEM-DEST-flag (byte 1 31.) rav-ir-a-mem-dest (byte 12. 19.) RAV-IR-M-MEM-DEST (Byte 6. 19.) RAV-IR-OB (BYTE 3. 16.) RAV-OB-A-BUS 0 RAV-OB-R-BUS 1 RAV-OB-A-BUS2 2 RAV-OB-ALU 3 RAV-OB-LEFT-1 4 RAV-OB-RIGHT-1 5 RAV-OB-EXTEND-25 6 RAV-OB-MIRROR 7 rav-ir-typed-alu-mode (byte 1 8) rav-ir-carry (byte 1 2) RAV-IR-ALUF-only (BYTE 5. 3.) rav-ir-aluf (byte 6 2) RAV-ALU-SETZ 0_1 RAV-ALU-AND 1_1 RAV-ALU-ANDCA 2_1 RAV-ALU-SETM 3_1 RAV-ALU-ANDCM 4_1 RAV-ALU-SETA 5_1 RAV-ALU-XOR 6_1 RAV-ALU-IOR 7_1 RAV-ALU-ANDCB 10_1 RAV-ALU-EQV 11_1 RAV-ALU-SETCA 12_1 RAV-ALU-ORCA 13_1 RAV-ALU-SETCM 14_1 RAV-ALU-ORCM 15_1 RAV-ALU-ORCB 16_1 RAV-ALU-SETO 17_1 RAV-ALU-ADD 31_1 RAV-ALU-SUB 36_1 RAV-ALU-M+M 37_1 RAV-ALU-M+ 34_1 RAV-ALU-MUL 20_1 RAV-ALU-MUL-LAST 21_1 RAV-ALU-DIV 22_1 RAV-ALU-DIV-LAST 22_1 RAV-ALU-DIV-FIRST 23_1 RAV-ALU-DIV-CORR 24_1 RAV-IR-Q (BYTE 2. 0.) RAV-Q-NOP 0 RAV-Q-LEFT 1 RAV-Q-RIGHT 2 RAV-Q-LOAD 3 RAV-IR-FUNC-DEST (Byte 6. 25.) RAV-FUNC-DEST-LC 1 RAV-FUNC-DEST-MCR 2 RAV-FUNC-DEST-MICRO-STACK-POINTER 3 RAV-FUNC-DEST-MICRO-STACK-DATA 4 RAV-FUNC-DEST-MICRO-STACK-DATA-PUSH 5 RAV-FUNC-DEST-MICRO-STACK-PUSH 5 RAV-FUNC-DEST-IMOD-LOW 6 RAV-FUNC-DEST-IMOD-HIGH 7 RAV-FUNC-DEST-MACRO.IR 10 RAV-FUNC-DEST-TEST-SYNCH 17 RAV-FUNC-DEST-VMA 20 RAV-FUNC-DEST-VMA-WRITE-L1 21 ;map addressed by MD, data in VMA RAV-FUNC-DEST-VMA-WRITE-L2-MAP-CONTROL 22 RAV-FUNC-DEST-VMA-WRITE-L2-MAP-PHYSICAL-PAGE 23 RAV-FUNC-DEST-VMA-START-READ 24 RAV-FUNC-DEST-VMA-START-WRITE 25 RAV-FUNC-DEST-VMA-START-UNMAPPED-READ 26 RAV-FUNC-DEST-VMA-START-UNMAPPED-WRITE 27 RAV-FUNC-DEST-MD 30 RAV-FUNC-DEST-MD-WRITE-L1 31 ;?? RAV-FUNC-DEST-MD-WRITE-L2-CONTROL 32 RAV-FUNC-DEST-MD-WRITE-L2-PHYSICAL-PAGE 33 RAV-FUNC-DEST-MD-START-READ 34 RAV-FUNC-DEST-MD-START-WRITE 35 RAV-FUNC-DEST-MD-START-UNMAPPED-READ 36 RAV-FUNC-DEST-MD-START-UNMAPPED-WRITE 37 RAV-FUNC-DEST-C-PDL-BUFFER-POINTER 40 RAV-FUNC-DEST-C-PDL-BUFFER-INDEX 41 RAV-FUNC-DEST-C-PDL-BUFFER-POINTER-PUSH 44 RAV-FUNC-DEST-C-PDL-BUFFER-INDEX-INC 45 RAV-FUNC-DEST-PDL-BUFFER-POINTER 50 RAV-FUNC-DEST-PDL-BUFFER-INDEX 51 RAV-FUNC-DEST-VMA-START-UNMAPPED-BYTE-READ 66 RAV-FUNC-DEST-VMA-START-UNMAPPED-BYTE-WRITE 67 RAV-FUNC-DEST-MD-START-UNMAPPED-BYTE-READ 76 RAV-FUNC-DEST-MD-START-UNMAPPED-BYTE-WRITE 77 RAV-IR-BYTE-FUNC (Byte 2. 17.) RAV-BYTE-FUNC-LDB 1 RAV-BYTE-FUNC-SELECTIVE-DEPOSIT 2 RAV-BYTE-FUNC-DPB 3 rav-ir-rotate-right (byte 1 16.) RAV-IR-MR (BYTE 1. 18.) RAV-IR-SR (BYTE 1. 17.) RAV-IR-ROTATION-LENGTH (BYTE 3. 5.) RAV-IR-ROTATION-COUNT (BYTE 5. 0.) rav-byte-spec (byte 8. 0) RAV-IR-JUMP-ADDR (BYTE 14. 18.) RAV-IR-jump-on-bit (BYTE 1. 17.) ;if this is on, then jump-cond is m adr ; RPN ; 000 jump-xct-next ; 001 jump ; 010 call-xct-next ; 011 call ; 100 popj-xct-next ; 101 popj ; 110 NOP <- unknown in lambda ... other documentation says this is same as jump-xct-next ; 111 SKIP <- unknown in lambda ... other documentation says this is same as jump RAV-IR-N (BYTE 1 5) RAV-IR-P (BYTE 1 6) RAV-IR-R (BYTE 1 7) rav-ir-jump-call-return (byte 2 6) rav-ir-jump-invert-cond (byte 1 15.) RAV-ir-JUMP-COND (BYTE 6. 10.) rav-ir-jump-cond-low (byte 5 10.) RAV-JUMP-COND-BIT-SET 0 RAV-JUMP-COND-BIT-clear (+ 0 40) RAV-JUMP-COND-M=A (+ 1 40) RAV-JUMP-COND-M<=A 2 RAV-JUMP-COND-M>A (+ 2 40) RAV-JUMP-COND-MA 3 RAV-JUMP-COND-M=A (+ 3 40) RAV-JUMP-COND-PAGE-FAULT 4 RAV-JUMP-COND-PAGE-FAULT-OR-INTERRUPT 5 RAV-JUMP-COND-PAGE-FAULT-OR-INTERRUPT-OR-SEQUENCE-BREAK 6 RAV-JUMP-COND-UNC 7 RAV-JUMP-COND-DATA-TYPE-NOT-EQUAL 10 RAV-JUMP-COND-DATA-TYPE-EQUAL (+ 10 40) RAV-JUMP-COND-BOXED-SIGN-BIT-SET 15 RAV-JUMP-COND-BOXED-SIGN-BIT-clear (+ 15 40) RAV-JUMP-COND-Q0 12 RAV-JUMP-COND-NUBUS-ERROR 13 RAV-JUMP-COND-NOT-FIXNUM-OVERFLOW 14 RAV-JUMP-COND-FIXNUM-OVERFLOW (+ 14 40) RAV-JUMP-COND-TAG-CLASSIFY 20 RAV-IR-WRITE-CONTROL-STORE (BYTE 1. 9.) RAV-IR-READ-CONTROL-STORE (BYTE 1. 8.) RAV-DISPATCH-SRC (BYTE 2. 12.) RAV-DISPATCH-SRC-M-SRC 0 RAV-DISPATCH-SRC-M-DATA-TYPE 1 RAV-DISPATCH-SRC-MIR 2 RAV-DISPATCH-SRC-MIR2 3 RAV-DISPATCH-MASK-LENGTH (Byte 3. 5.) rav-ir-disp-enable-meta (Byte 2. 10.) RAV-ir-disp-enable-gc-write-test-meta (byte 1 10.) rav-ir-disp-enable-oldspace-meta (byte 1 11.) RAV-IR-WRITE-DISPATCH-MEMORY (BYTE 1. 9.) RAV-IR-READ-DISPATCH-MEMORY (BYTE 1. 8.) RAV-IR-DISPATCH-ADDR (BYTE 12. 20.) rav-ir-rotation-direction (byte 1 16.) rav-ir-dispatch-instruction-stream (byte 1 15.) rav-ir-dispatch-source-select (byte 2 12.) rav-ir-write-classifer-ram (byte 1 9) ;alu inst rav-ir-halt (byte 1 49.) rav-ir-parity (byte 1 50.) rav-ir-abbrv-jump (byte 3 51.) rav-ir-disp-const (byte 10. 32.) rav-ir-push-own-address (byte 1 17.) rav-ir-enable-instruction-stream (byte 1 15.) ) ) (setup-raven-symbols raven-symbols)