;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for MICRO-COMPILATION-TOOLS version 3.2 ;;; Reason: ;;; enable-micro-%misc for turning on new handed-code (regular microcode) misc instructions. ;;; Written 25-Mar-86 08:33:29 by GJC at site LMI Cambridge ;;; while running on Moe from band 3 ;;; with Experimental System 110.154, Experimental Lambda-Diag 7.3, Experimental Local-File 68.4, Experimental FILE-Server 18.2, Experimental Unix-Interface 9.1, Experimental ZMail 65.10, Experimental Object Lisp 3.0, Experimental Tape 6.13, Experimental Site Data Editor 3.1, Experimental Tiger 24.0, Experimental KERMIT 31.2, Experimental Window-Maker 1.0, Experimental Gateway 4.0, Experimental TCP-Kernel 39.5, Experimental TCP-User 62.5, Experimental TCP-Server 45.5, Experimental MEDIUM-RESOLUTION-COLOR 3.0, Experimental MICRO-COMPILATION-TOOLS 3.1, microcode 1429, SDU ROM 103, Alpha III Andover. ; From file DJ: L.MICRO-COMPILER; MLAP.LISP#64 at 25-Mar-86 08:33:30 #8R COMPILER#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "COMPILER"))) (PATCH-SOURCE-FILE "SYS: MICRO-COMPILER; MLAP  " (defun enable-micro-%misc (instruction-name &optional (cname (intern (format nil "%~A" instruction-name) "COMPILER")) (sname (intern (format nil "X~A" instruction-name) "LAM"))) "This is for enabling a hand-coded %MISC instruction that was installed after the cold load" (lambda:assure-lam-symbols-loaded) (let ((opcode (or (get cname 'qlval) (ferror nil "No opcode for ~S" cname))) (pc (- (or (lam:lam-lookup-name sname) (ferror nil "No ucode pc for ~S in loaded LAM symbols" sname)) lam:racmo))) (let ((pc-array #'micro-code-symbol-area) (name-array #'micro-code-symbol-name-area) (index (misc-opcode->array-index opcode))) (aset pc pc-array index) (enable-mid-ram opcode pc) (let ((sys:%inhibit-read-only t)) (aset cname name-array index)) instruction-name))) ))