anchor.diff:  (make-ee-instructions (make-encoding :spec 0 :inst 0 :rs 16 :rt 21 :rd 11 :type 1 :func #'inst-type1)
                         '((add   #b100000) (addu  #b100001) (and   #b100100) (dadd  #b101100) (daddu #b101101) 
                           (dsub  #b101110) (dsubu #b101111) (movn  #b001011) (movz  #b001010) (nor   #b100111) 
  -      (or    #b100101) (slt   #b101010) (sltu  #b101011)))
  +                        (or    #b100101) (slt   #b101010) (sltu  #b101011)))
   
   (make-ee-instructions (make-encoding :spec 0 :inst 0 :rs 21 :rt 16 :rd 11 :type 1 :func #'inst-type1)
                         '((dsllv #b010100) (dsrav #b010111) (dsrlv #b010110) (sllv  #b000100) 
  -      (srav  #b000111) (srlv  #b000110)))
  +                        (srav  #b000111) (srlv  #b000110)))
   
   (make-ee-instructions (make-encoding :spec #b011100 :fixed #b001000 :inst 6 :rs 16 :rt 21 :rd 11 :type 1 :func #'inst-type1)
                         '((paddb  #b01000) (paddh  #b00100) (paddsb #b11000) (paddsh #b10100) (paddsw #b10000)
  
positive.code: (def-inst-type fpu-type2 ((fd fs))) 
  (def-inst-type fpu-type3 ((rt fs))) 
  
  ;;; List over all ee - instructions
  
  (defparameter *instruction-vector* (make-array 300))
  (defparameter *current-instruction* 0)
  
  (defun make-ee-instructions (enc opcode-list) 
    (loop for i in opcode-list do 
      (setf (gethash (first i) *mips-instructions*) (list (second i) enc))
      (setf (aref *instruction-vector* *current-instruction*) (first i))
      (incf *current-instruction*)))
  
  ;;; instruction encoding
  
  (defparameter *mips-instructions* (make-hash-table :test #'eq))
  
  ;;
  ;; Registers all instructions 
  ;;
  
  (make-ee-instructions (make-encoding :inst 26 :rs 16 :rt 21 :imm 0 :type 0 :func #'inst-type0)
                        '((addi #b001000) (addiu #b001001) (andi #b001100) (daddi #b011000) (daddiu #b011001)
                          (ori   #b001101) (slti #b001010) (sltiu #b001011) (xori   #b001110)
                          (lb  #b100000) (lbu #b100100) (ld  #b110111) (ldl #b011010) (ldr #b011011)
                          (lwl #b100010) (lh  #b100001) (lhu #b100101) (lw  #b100011) (lq  #b011110)
                          (lwl #b100010) (lwr #b100110) (lwu #b100111) (sb  #b101000) (sd  #b111111) 
        (sdl #b101100) (sdr #b101101) (sh  #b101001) (sw  #b101011) (swl #b101010) 
        (swr #b101110) (sq  #b011111)))
  
  (make-ee-instructions (make-encoding :inst 26 :rs 21 :rt 16 :imm 0 :type 0 :func #'inst-type0)
                        '((beq  #b000100) (beql #b000100) (bne  #b000101) (bnel #b010101)))
  
negative.code:       (loop for i = (read stream nil end)
          while (not (eq i end)) collect i)))) 
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; Implementing the mips (r5900 assembler here)
  ;;;
  