anchor.diff:              (3 (format stream "(~(~s~) 12)~%" instruction))   
               (4 (format stream "(~(~s~) r2 r3)~%" instruction))
               (5 (format stream "(~(~s~) r2)~%" instruction))   
  -            (6 (format stream "(~(~s)~)~%" instruction)))))))
  +            (6 (format stream "(~(~s~))~%" instruction))
  +            (7 (format stream "(~(~s~) f2 f3)~%" instruction))
  +            (8 (format stream "(~(~s~) f2 f3 f4)~%" instruction))
  +            (9 (format stream "(~(~s~) f2 f3 12)~%" instruction))
  +            (10 (format stream "(~(~s~) r2 f3)~%" instruction))
  +)))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;; Implementing the mips (r5900 assembler here)
  
positive.code: ;; fpu instructions
  ;;
  
  ; (make-ee-instructions (make-encoding :spec #b010001 :fix #x200000 :inst 0 :fs 11 :rd 6 :func #'fpu-type0)
  ;                        '(
  
  (defparameter *mips-instructions-temp* 
             '(
  
               ;; trap
  
               ;; misc
  
               ;; MMI instructions
  
               ;; Float ops
  
               (abs.s   #b000101)
               (add.s   #b000000)
               (adda.s  #b000000)
               (div.s   #b000011)
               (lwc1    #b110001)
               (madd.s  #b000000)
               (madda.s #b000000)
               (max.s   #b000000)
               (min.s   #b000000)
               (msub.s  #b000000)
               (msuba.s #b000000)
               (mul.s   #b000000)
               (mula.s  #b000000)
               (suba.s  #b000000)
               (swc1    #b111001)
  
               (c.eq.s  #b011010 :fcmp-type)
               (c.f.s   #b011000 :fcmp-type)
               (c.le.s  #b011011 :fcmp-type)
               (c.lt.s  #b011010 :fcmp-type)
  
               (cvt.s.w #b100000 :fcon-type)
               (cvt.w.t #b100100 :fcon-type)
  
               (bc1f    #b000000 :fbranch-type)
               (bc1fl   #b000010 :fbranch-type)
               (bc1t    #b000001 :fbranch-type)
               (bc1tl   #b000011 :fbranch-type)
  
               (mov.s   #b000000 :fmov-type)
               (mfc1    #b000000 :fftc1-type)
               (mtc1    #b000100 :fftc1-type)
  
               (rsqrt.s #b000000 :frsqrt-type)
               (sqrt.s  #b000000 :fsqrt-type)
  
               ;; cop-0 instructions (section non-functional but here to be implemented)
  
  
negative.code: ;;; Loots of testing / hacking around currently
  ;;;
  
  (defmacro make-ee-registers-hash (prefix)
    (let ((hash (make-hash-table :test #'eq)))
      (loop for i from 0 to 31 collecting (setf (gethash (intern (format nil "~S~d" prefix i)) hash) i)) hash))
  
  (defparameter *ee-registers* (make-ee-registers-hash R))
  (defparameter *fpu-registers* (make-ee-registers-hash F))
  (defparameter *register-type-lut* '(rs *ee-registers* rt *ee-registers* rd *ee-registers*
                                      fs *fpu-registers* ft *fpu-registers* fd *fpu-registers*))
  
  