anchor.diff:         temps
          (if (eq results t)
   	   (sicl-mir:make-tailcall-instruction temps)
  -	   (sicl-mir:make-funcall-instruction
  -	    temps
  -	    (sicl-mir:make-get-values-instruction
  -	     results (car successors))))))))
  +	   (ecase (length successors)
  +	     (1 (sicl-mir:make-funcall-instruction
  +		 temps
  +		 (sicl-mir:make-get-values-instruction
  +		  results (car successors))))
  +	     (2 (let ((temp (new-temporary)))
  +		  (sicl-mir:make-funcall-instruction
  +		   temps
  +		   (sicl-mir:make-get-values-instruction
  +		    (list temp)
  +		    (sicl-mir:make-test-instruction
  +		     temp successors)))))))))))
  +		  
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code: 		  (car results)
  		  (sicl-mir:make-test-instruction ast successors))))))))
  
  (defun compile-toplevel (ast)
    (let ((*block-info* (make-hash-table :test #'eq))
  	(*go-info* (make-hash-table :test #'eq)))
  
negative.code: (defun make-temp (argument)
    (cond ((typep argument 'sicl-env:lexical-location)
  	 argument)
  	((typep argument 'sicl-ast:immediate-ast)
  	 (sicl-mir:make-immediate-input (sicl-ast:value argument)))
  	((typep argument 'sicl-ast:load-time-value-ast)
  