;;; -*- Mode:LISP; Package:HARDWARE; Base:10; Readtable:CL -*-

;;; Generated by jrm on Monday the eighth of December, 1986; 6:40:26 pm

;;; COMMON group
(defconstant %%inst-global-frame-number                         (byte  4. 37.))
(defconstant %%inst-destination                                 (byte  7. 41.))
(defconstant %%inst-call-hardware-op                            (byte  3. 48.))
(defconstant %%inst-data-type-check                             (byte  3. 51.))
(defconstant %%inst-boxed-result                                (byte  2. 54.))
(defconstant %%inst-next-pc                                     (byte  2. 56.))
(defconstant %%inst-op-code                                     (byte  3. 58.))
(defconstant %%inst-sub-op-code                                 (byte  2. 58.))
(defconstant %%inst-spare1                                      (byte  1. 62.))
(defconstant %%inst-stat-bit                                    (byte  1. 63.))

;;; ALU group
(defconstant %%inst-alu-alu-mask                                (byte  5.  0.))
(defconstant %%inst-alu-alu-shift                               (byte  6.  5.))
(defconstant %%inst-alu-spare3                                  (byte  1. 11.))
(defconstant %%inst-alu-alu-operation                           (byte  7. 12.))
(defconstant %%inst-alu-left-source                             (byte  6. 19.))
(defconstant %%inst-alu-right-source                            (byte  7. 25.))
(defconstant %%inst-alu-byte-width                              (byte  2. 32.))
(defconstant %%inst-alu-jump-condition-select                   (byte  3. 34.))
(defconstant %%inst-alu-dispatch-to-16-inst-block               (byte  1. 61.))

;;; ALU-16-BIT-IMMEDIATE group
(defconstant %%inst-alu-16i-immediate-16                        (byte 16.  0.))
(defconstant %%inst-alu-16i-spare4                              (byte  3. 16.))
(defconstant %%inst-alu-16i-left-source                         (byte  6. 19.))
(defconstant %%inst-alu-16i-alu-operation                       (byte  7. 25.))
(defconstant %%inst-alu-16i-byte-width                          (byte  2. 32.))
(defconstant %%inst-alu-16i-jump-condition-select               (byte  3. 34.))
(defconstant %%inst-alu-16i-dispatch-to-16-inst-block           (byte  1. 61.))

;;; ALU-24-BIT-IMMEDIATE group
(defconstant %%inst-alu-24i-immediate-24                        (byte 24.  0.))
(defconstant %%inst-alu-24i-spare5                              (byte  1. 24.))
(defconstant %%inst-alu-24i-alu-operation                       (byte  7. 25.))
(defconstant %%inst-alu-24i-byte-width                          (byte  2. 32.))
(defconstant %%inst-alu-24i-jump-condition-select               (byte  3. 34.))
(defconstant %%inst-alu-24i-dispatch-to-16-inst-block           (byte  1. 61.))

;;; LOAD-32-BIT-IMMEDIATE group
(defconstant %%inst-load-32i-immediate-32                       (byte 32.  0.))
(defconstant %%inst-load-32i-spare2                             (byte  2. 32.))
(defconstant %%inst-load-32i-jump-condition-select              (byte  3. 34.))
(defconstant %%inst-load-32i-dispatch-to-16-inst-block          (byte  1. 61.))

;;; FLOATING-POINT-ALU group
(defconstant %%inst-float-fpu-unload                            (byte  3.  0.))
(defconstant %%inst-float-fpu-load                              (byte  6.  3.))
(defconstant %%inst-float-fpu-op                                (byte  8.  9.))
(defconstant %%inst-float-fpu-trap-status                       (byte  2. 17.))
(defconstant %%inst-float-left-source                           (byte  6. 19.))
(defconstant %%inst-float-right-source                          (byte  7. 25.))
(defconstant %%inst-float-spare2                                (byte  2. 32.))
(defconstant %%inst-float-jump-condition-select                 (byte  3. 34.))
(defconstant %%inst-float-dispatch-to-16-inst-block             (byte  1. 61.))

;;; FLOATING-POINT-MULTIPLIER group
(defconstant %%inst-fmult-fpu-unload                            (byte  3.  0.))
(defconstant %%inst-fmult-fpu-load                              (byte  6.  3.))
(defconstant %%inst-fmult-mpu-op                                (byte  8.  9.))
(defconstant %%inst-fmult-fpu-trap-status                       (byte  2. 17.))
(defconstant %%inst-fmult-left-source                           (byte  6. 19.))
(defconstant %%inst-fmult-right-source                          (byte  7. 25.))
(defconstant %%inst-fmult-spare2                                (byte  2. 32.))
(defconstant %%inst-fmult-jump-condition-select                 (byte  3. 34.))
(defconstant %%inst-fmult-dispatch-to-16-inst-block             (byte  1. 61.))

;;; CONDITIONAL-BRANCH group
(defconstant %%inst-branch-branch-address                       (byte 12.  0.))
(defconstant %%inst-branch-alu-operation                        (byte  7. 12.))
(defconstant %%inst-branch-left-source                          (byte  6. 19.))
(defconstant %%inst-branch-right-source                         (byte  7. 25.))
(defconstant %%inst-branch-byte-width                           (byte  2. 32.))
(defconstant %%inst-branch-jump-condition-select                (byte  3. 34.))
(defconstant %%inst-branch-unconditional                        (byte  1. 61.))

;;; CALLZ group
(defconstant %%inst-callz-destination-return-bit-2-0            (byte  3.  0.))
(defconstant %%inst-callz-spare6                                (byte  1.  3.))
(defconstant %%inst-callz-callz-address                         (byte  8.  4.))
(defconstant %%inst-callz-alu-operation                         (byte  7. 12.))
(defconstant %%inst-callz-left-source                           (byte  6. 19.))
(defconstant %%inst-callz-right-source                          (byte  7. 25.))
(defconstant %%inst-callz-byte-width                            (byte  2. 32.))
(defconstant %%inst-callz-destination-return-bit-5-3            (byte  3. 34.))
(defconstant %%inst-callz-destination-return-bit-6              (byte  1. 61.))

;;; JUMP group
(defconstant %%inst-jump-target-address                         (byte 24.  0.))
(defconstant %%inst-jump-spare5                                 (byte  1. 24.))
(defconstant %%inst-jump-right-source                           (byte  7. 25.))
(defconstant %%inst-jump-byte-width                             (byte  2. 32.))
(defconstant %%inst-jump-jump-condition-select                  (byte  3. 34.))
(defconstant %%inst-jump-unconditional                          (byte  1. 61.))

;;; CALL group
(defconstant %%inst-call-target-address                         (byte 24.  0.))
(defconstant %%inst-call-destination-return-bit-0               (byte  1. 24.))
(defconstant %%inst-call-right-source                           (byte  7. 25.))
(defconstant %%inst-call-destination-return-bit-5-1             (byte  5. 32.))
(defconstant %%inst-call-destination-return-bit-6               (byte  1. 61.))

;;; CALL-DISPATCH group
(defconstant %%inst-call-dispatch-destination-return-bit-2-0    (byte  3.  0.))
(defconstant %%inst-call-dispatch-dispatch-to-16-inst-block     (byte  1.  3.))
(defconstant %%inst-call-dispatch-spare7                        (byte  8.  4.))
(defconstant %%inst-call-dispatch-alu-operation                 (byte  7. 12.))
(defconstant %%inst-call-dispatch-left-source                   (byte  6. 19.))
(defconstant %%inst-call-dispatch-right-source                  (byte  7. 25.))
(defconstant %%inst-call-dispatch-byte-width                    (byte  2. 32.))
(defconstant %%inst-call-dispatch-destination-return-bit-5-3    (byte  3. 34.))
(defconstant %%inst-call-dispatch-destination-return-bit-6      (byte  1. 61.))

