;;; -*- Mode:ZETALISP; Package:COMPILER2; Base:8; Cold-Load:T -*- ;;; ** (c) Copyright 1985 Texas Instruments Incorporated ** ;;; This file contains the definition of the machine instruction set format (SETF (LAP-VALUE 'FEF) 0) (SETF (LAP-VALUE 'CONST-PAGE) NIL) ; don't have a constants page anymore. (SETF (LAP-VALUE 'LOCBLOCK) (DPB (GET-DEFINED-VALUE %QMI-REG-LOCAL) (GET-DEFINED-VALUE %%QMI-REGISTER) 0)) (SETF (LAP-VALUE 'ARG) (DPB (GET-DEFINED-VALUE %QMI-REG-ARG) (GET-DEFINED-VALUE %%QMI-REGISTER) 0)) (SETF (LAP-VALUE 'LEX) (DPB (GET-DEFINED-VALUE %QMI-REG-LEX) (GET-DEFINED-VALUE %%QMI-REGISTER) 0)) (SETF (LAP-VALUE 'SELF-UNMAPPED) (DPB (GET-DEFINED-VALUE %QMI-REG-IVAR) (GET-DEFINED-VALUE %%QMI-REGISTER) 0)) (SETF (LAP-VALUE 'SELF-MAP) (DPB (GET-DEFINED-VALUE %QMI-REG-IVAR) (GET-DEFINED-VALUE %%QMI-REGISTER) (DPB 1 (GET-DEFINED-VALUE %%QMI-IVAR-MAPPED) 0))) (SETF (LAP-VALUE 'PDL-POP) (DPB (GET-DEFINED-VALUE %QMI-REG-PDL) (GET-DEFINED-VALUE %%QMI-REGISTER) (LDB (GET-DEFINED-VALUE %%QMI-OFFSET) -1))) (SETF (LAP-VALUE 'PDL-PUSH) (LAP-VALUE 'PDL-POP)) ;;; Destinations (SETF (LAP-VALUE 'D-IGNORE) (GET-DEFINED-VALUE %QMI-CALLDEST-INDS) ) (SETF (LAP-VALUE 'D-INDS) (GET-DEFINED-VALUE %QMI-CALLDEST-INDS) ) (SETF (LAP-VALUE 'D-PDL) (GET-DEFINED-VALUE %QMI-CALLDEST-PUSH) ) (SETF (LAP-VALUE 'D-RETURN) (GET-DEFINED-VALUE %QMI-CALLDEST-RETURN) ) (SETF (LAP-VALUE 'D-TAIL) (GET-DEFINED-VALUE %QMI-CALLDEST-TAIL-REC)) (setf (lap-value 'pop-pdl) (1- (lap-value 'pop-pdl-1))) ;; AREFI (DEFPROP GLOBAL:AR-1 000 AREFI) (DEFPROP ARRAY-LEADER 100 AREFI) (DEFPROP %INSTANCE-REF 200 AREFI) (DEFPROP COMMON-LISP-AR-1 300 AREFI) (DEFPROP SET-AR-1 400 AREFI) (DEFPROP SET-ARRAY-LEADER 500 AREFI) (DEFPROP SET-%INSTANCE-REF 600 AREFI) ;; One unused code 700 ;;;; refuse ;;; d (DEF-MISC-OP %SPREAD-N 372 (LIST N) NIL) ;;;; I/O and non-virtual address spaces ;;i (DEFMIC %UNIBUS-READ 555 (UNIBUS-ADDR) T) ;;i (DEFMIC %UNIBUS-WRITE 556 (UNIBUS-ADDR WORD) T) ;;i (DEFMIC %XBUS-READ 637 (IO-ADDR) T) ;;i (DEFMIC %XBUS-WRITE 640 (IO-ADDR WORD) T) ;;i (DEFMIC %IO-SPACE-READ 765 (IO-ADDR) T) ;;32 bit read from HARDWARE-VIRTUAL-ADDRESS space. ;;actual microcode is identical to that used for %XBUS-READ on CADR. ;;i (DEFMIC %IO-SPACE-WRITE 766 (IO-ADDR WORD) T) ;;actual microcode is identical to %XBUS-WRITE ;;on CADR. ;;d (DEFMIC %NUBUS-PHYSICAL-ADDRESS 767 (APPARENT-PHYSICAL-PAGE) T) ;;arg is "apparent" physical ;;page number (gotten, for example, by shifting value from ;;%PHYSICAL-ADDRESS). value is 22 bit NUBUS page number. ;;i (DEFMIC %XBUS-WRITE-SYNC 471 (IO-ADDR WORD DELAY SYNC-LOC SYNC-MASK SYNC-VAL) T) ;;; CONSing ;;d (DEFMIC XCONS 370 (CDR CAR) T) ;;d (DEFMIC XCONS-IN-AREA 371 (CDR CAR AREA) T) ;;; Stack hacking ;; dumb -- only need flag to compiler (DEFMIC %PUSH 534 (X) NIL) ;why not PUSH??? ;;d (DEFMIC MOVE-PDL-TOP 642 NIL NIL T) ;;i (DEFMIC POP-OPEN-CALL 670 NIL NIL T) ;; wierd!! -- can be done other ways (DEFMIC UNBIND-TO-INDEX-UNDER-N 405 (N) NIL) ;;; Random %-fns ;; soon (hopefully) gone too ;;d (DEFMIC (*PLUS . M-+) 421 (NUM1 NUM2) T) ;;d (DEFMIC (*DIF . M--) 422 (NUM1 NUM2) T) ;;d (DEFMIC (*TIMES . M-*) 423 (NUM1 NUM2) T) ;;d (DEFMIC (*LOGAND . M-LOGAND) 425 (NUM1 NUM2) T) ;;d (DEFMIC (*LOGXOR . M-LOGXOR) 426 (NUM1 NUM2) T) ;;r (DEFMIC 1+ 325 (N) T) ;;r (DEFMIC 1- 326 (N) T) ;??(DEFMIC %MULTIPLY-FRACTIONS 611 (NUM1 NUM2) T) ;??(DEFMIC %DIVIDE-DOUBLE 612 (HIGH-DIVIDEND LOW-DIVIDEND DIVISOR) T) ;;d (DEFMIC %REMAINDER-DOUBLE 613 (HIGH-DIVIDEND LOW-DIVIDEND DIVISOR) T) ;;d (DEFMIC %24-BIT-PLUS 624 (NUM1 NUM2) T) ;;d (DEFMIC %24-BIT-DIFFERENCE 625 (NUM1 NUM2) T) ;;d (DEFMIC %24-BIT-TIMES 626 (NUM1 NUM2) T) ;; Changed in 95 to exist only for old code. ;;d (DEFMIC FLOAT 650 (NUMBER) NIL T) ;??(DEFMIC %FLOAT-DOUBLE 652 (NUMBER NUMBER) T) ;;d (DEFMIC ARRAY-TO-BIGNUM 654 (ARRAY BASE SIGN) T) ;;Next two should not be microcoded; should compile into BIT-TESTs. ;;(DEFMIC ODDP 344 (NUMBER) NIL) ;;(DEFMIC EVENP 345 (NUMBER) NIL) ;;;d (DEFMIC GET-LIST-POINTER-INTO-ARRAY 432 (ARRAY) T) ;;d (DEFMIC AR-1-CACHED-1 730 (ARRAY SUBSCRIPT) T) ;;d (DEFMIC AR-1-CACHED-2 731 (ARRAY SUBSCRIPT) T) ;;d (DEFMIC ARRAY-ROW-MAJOR-INDEX 755 (ARRAY &REST SUBSCRIPTS) T T) ;;d (DEFMIC CADR-SAFE 1005 (OBJECT) T) ;;d (DEFMIC CDDR-SAFE 1006 (OBJECT) T) ;;d (DEFMIC CDDDDR-SAFE 1007 (OBJECT) T) ;;d (DEFMIC NTHCDR-SAFE 1010 (N OBJECT) T) ;;d (DEFMIC NTH-SAFE 1011 (N OBJECT) T) ;; d (DEFMIC %INSTANCE-SET 522 (VAL INSTANCE INDEX) T) ;;d (DEFMIC %BINDING-INSTANCES 523 (LIST-OF-SYMBOLS) T) ;;;;?? declared incompatible. ;;i (DEFMIC %ARGS-INFO 532 (FUNCTION) T)