anchor.diff:        (sicl-mir:immediate-input
          (etypecase input2
   	 (sicl-mir:register-location
  -	  (format stream "     CMP ~a, ~d~%"
  -		  (sicl-mir:name input2)
  -		  (sicl-mir:value input1))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))
  -	 (sicl-mir:dynamic-location
  -	  (format stream "     CMP [RBP ~d], ~d~%"
  -		  (* -8 (1+ (sicl-mir:index input2)))
  -		  (sicl-mir:value input1))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))))
  -      (sicl-mir:register-location
  -       (etypecase input2
  -	 (sicl-mir:immediate-input
  -	  (format stream "     CMP ~a, ~d~%"
  -		  (sicl-mir:name input1)
  -		  (sicl-mir:value input2))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))
  -	 (sicl-mir:register-location
  -	  (format stream "     CMP ~a, ~a~%"
  -		  (sicl-mir:name input1)
  -		  (sicl-mir:name input2))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))
  -	 (sicl-mir:dynamic-location
  -	  (format stream "     CMP ~a, [RBP ~d]~%"
  -		  (sicl-mir:name input1)
  -		  (* -8 (1+ (sicl-mir:index input2))))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))))
  -      (sicl-mir:dynamic-location
  -       (etypecase input2
  -	 (sicl-mir:immediate-input
  -	  (format stream "     CMP [RBP ~d], ~d~%"
  -		  (* -8 (1+ (sicl-mir:index input2)))
  -		  (sicl-mir:value input1))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))
  -	 (sicl-mir:register-location
  -	  (format stream "     CMP [RBP ~d], ~a~%"
  -		  (* -8 (1+ (sicl-mir:index input2)))
  -		  (sicl-mir:name input1))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*)))
  -	 (sicl-mir:dynamic-location
  -	  (format stream "     MOV RAX, [RBP ~d]~%"
  -		  (* -8 (1+ (sicl-mir:index input1))))
  -	  (format stream "     CMP RAX, [RBP ~d]~%"
  -		  (* -8 (1+ (sicl-mir:index input2))))
  -	  (assign-label (cadr successors))
  -	  (format stream "     JNL ~a~%"
  -		  (gethash (cadr successors) *label-table*))))))))
  +	  (add-code "CMP" (list (make-reg input2) (make-imm input1)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JL" (list (gethash (cadr successors) *label-table*))))
  +	 (sicl-mir:dynamic-location
  +	  (add-code "CMP"
  +		    (list (make-mem 'rbp (* -8 (1+ (sicl-mir:index input2))))
  +			  (make-imm input1)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JL" (list (gethash (cadr successors) *label-table*))))))
  +      (sicl-mir:register-location
  +       (etypecase input2
  +	 (sicl-mir:immediate-input
  +	  (add-code "CMP" (list (make-reg input1) (make-imm input2)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*))))
  +	 (sicl-mir:register-location
  +	  (add-code "CMP" (list (make-reg input1) (make-reg input2)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*))))
  +	 (sicl-mir:dynamic-location
  +	  (add-code "CMP"
  +		    (list (make-reg input1)
  +			  (make-mem 'rbp (* -8 (1+ (sicl-mir:index input2))))))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*))))))
  +      (sicl-mir:dynamic-location
  +       (etypecase input2
  +	 (sicl-mir:immediate-input
  +	  (add-code "CMP"
  +		    (list (make-mem 'rbp (* -8 (1+ (sicl-mir:index input1))))
  +			  (make-imm input2)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*))))
  +	 (sicl-mir:register-location
  +	  (add-code "CMP"
  +		    (list (make-mem 'rbp (* -8 (1+ (sicl-mir:index input1))))
  +			  (make-reg input2)))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*))))
  +	 (sicl-mir:dynamic-location
  +	  (add-code "MOV"
  +		    (list (make-reg 'rax)
  +			  (make-mem 'rbp (* -8 (1+ (sicl-mir:index input1))))))
  +	  (add-code "CMP"
  +		    (list (make-reg 'rax)
  +			  (make-mem 'rbp (* -8 (1+ (sicl-mir:index input2))))))
  +	  (assign-label (cadr successors))
  +	  (add-code "JNL" (list (gethash (cadr successors) *label-table*)))))))))
   
   (defmethod generate-instruction
       ((instruction sicl-mir:s<=-instruction) stream)
  
positive.code:       (sicl-mir:register-location
         (etypecase output
  	 (sicl-mir:register-location
  	  (format stream "     MOV ~a, [~a ~d]~%"
  		  (sicl-mir:name output)
  		  (sicl-mir:name input)
  		  displacement))
  	 (sicl-mir:dynamic-location
  	  (format stream "     MOV RAX, [~a ~d]~%"
  		  (sicl-mir:name input)
  		  displacement)
  	  (format stream "     MOV [RBP ~d], RAX~%"
  		  (* -8 (1+ (sicl-mir:index output)))))))
        (sicl-mir:dynamic-location
         (etypecase output
  	 (sicl-mir:register-location
  	  (format stream "     MOV RAX, [RBP ~d]~%"
  		  (* -8 (1+ (sicl-mir:index input))))
  	  (format stream "     MOV ~a, [RAX ~d]~%"
  		  (sicl-mir:name output)
  		  displacement))
  	 (sicl-mir:dynamic-location
  	  (format stream "     MOV RAX, [RBP ~d]~%"
  		  (* -8 (1+ (sicl-mir:index input))))
  	  (format stream "     MOV RAX, [RAX ~d]~%"
  		  displacement)
  	  (format stream "     MOV [RBP ~d], RAX~%"
  		  (* -8 (1+ (sicl-mir:index output))))))))))
  
  (defun generate-code (first-instruction)
    (let ((*label-table* (make-hash-table :test #'eq))
  	(*processed-p-table* (make-hash-table :test #'eq)))
      (generate-instruction first-instruction *standard-output*)))
        
  
negative.code: 
  (defmethod generate-instruction
      ((instruction sicl-mir:return-instruction) stream)
    (add-code "RET" '()))
  
  (defmethod generate-instruction
      ((instruction sicl-mir:funcall-instruction) stream)
  