anchor.diff:    (let ((label (gensym))
   	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
  -    `(,@(load-input (cadr (inputs instruction)))
  +    `(";;; Start of == instruction."
  +      ,@(load-input (cadr (inputs instruction)))
         "	mov ebx, eax	; Second argument of ==."
         ,@(load-input (car (inputs instruction)))
         "	cmp eax, ebx	; Compare first and second argument of ==."
         ,(format nil "	jne ~a	; Go if not ==." label)
  +      ";;; Start of THEN branch."
         ,@then-branch
  +      ";;; End of THEN branch."
         ,(format nil "~a:		; Come here if not ==." label)
  -      ,@else-branch)))
  +      ";;; Start of ELSE branch."
  +      ,@else-branch
  +      ";;; End of ELSE branch.")))
   	  
   (defmethod codegen-instruction
       ((instruction sicl-mir:s<-instruction))
     (let ((label (gensym))
   	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
  -    `(,@(load-input (cadr (inputs instruction)))
  +    `(";;; Start of s< instruction."
  +      ,@(load-input (cadr (inputs instruction)))
         "	mov ebx, eax	; Second argument of s<."
         ,@(load-input (car (inputs instruction)))
         "	cmp eax, ebx	; Compare first and second argument of s<."
         ,(format nil "	jge ~a	; Go if not s<." label)
  +      ";;; Start of THEN branch."
         ,@then-branch
  +      ";;; End of THEN branch."
         ,(format nil "~a:		; Come here if not s<." label)
  -      ,@else-branch)))
  +      ";;; Start of ELSE branch."
  +      ,@else-branch
  +      ";;; End of ELSE branch.")))
   	  
   (defmethod codegen-instruction
       ((instruction sicl-mir:s<=-instruction))
     (let ((label (gensym))
   	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
  -    `(,@(load-input (cadr (inputs instruction)))
  +    `(";;; Start of s<= instruction."
  +      ,@(load-input (cadr (inputs instruction)))
         "	mov ebx, eax	; Second argument of s<=."
         ,@(load-input (car (inputs instruction)))
         "	cmp eax, ebx	; Compare first and second argument of s<=."
         ,(format nil "	jg ~a	; Go if not s<=." label)
  +      ";;; Start of THEN branch."
         ,@then-branch
  +      ";;; End of THEN branch."
         ,(format nil "~a:		; Come here if not s<=." label)
  -      ,@else-branch)))
  +      ";;; Start of ELSE branch."
  +      ,@else-branch
  +      ";;; End of ELSE branch.")))
   	  
   (defmethod codegen-instruction
       ((instruction sicl-mir:u<-instruction))
     (let ((label (gensym))
   	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
  -    `(,@(load-input (cadr (inputs instruction)))
  +    `(";;; Start of u< instruction."
  +      ,@(load-input (cadr (inputs instruction)))
         "	mov ebx, eax	; Second argument of u<."
         ,@(load-input (car (inputs instruction)))
         "	cmp eax, ebx	; Compare first and second argument of u<."
         ,(format nil "	jnb ~a	; Go if not u<." label)
  +      ";;; Start of THEN branch."
         ,@then-branch
  +      ";;; End of THEN branch."
         ,(format nil "~a:		; Come here if not u<." label)
  -      ,@else-branch)))
  +      ";;; Start of ELSE branch."
  +      ,@else-branch
  +      ";;; End of ELSE branch.")))
   	  
   (defmethod codegen-instruction
       ((instruction sicl-mir:u<=-instruction))
     (let ((label (gensym))
   	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
  -    `(,@(load-input (cadr (inputs instruction)))
  +    `(";;; Start of u<= instruction."
  +      ,@(load-input (cadr (inputs instruction)))
         "	mov ebx, eax	; Second argument of u<=."
         ,@(load-input (car (inputs instruction)))
         "	cmp eax, ebx	; Compare first and second argument of u<=."
         ,(format nil "	ja ~a	; Go if not u<=." label)
  +      ";;; Start of THEN branch."
         ,@then-branch
  +      ";;; End of THEN branch."
         ,(format nil "~a:		; Come here if not u<=." label)
  -      ,@else-branch)))
  +      ";;; Start of ELSE branch."
  +      ,@else-branch
  +      ";;; End of ELSE branch.")))
   	  
   (defun codegen-procedure (procedure)
     (let ((*depth* (lexical-depth procedure)))
  
positive.code: (defun push-arguments ()
    (let ((label1 (gensym))
  	(label2 (gensym)))
      `("	shl ebx, 2	; Number of args times size of arg."
        ,(format nil "~a:" label1)
        "	cmp ebx, 0	; Any arguments left?"
        ,(format nil "	jz, ~a	; No.  Go!" label2)
        "	sub ebx, 4	; Yes, find the last of the remaining."
        "	push [eax + ebx]	; Push it on the stack."
        ,(format nil "	jump ~a	; Loop." label1)
        ,(format nil "~a:		; No more arguments to push." label2))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:get-arguments-instruction))
    (append (loop for output in (outputs instruction)
  		for i from 0
  		append (load-from-argument i)
  		append (save-result output))
  	  (codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:put-arguments-instruction))
    (append (loop for input in (inputs instruction)
  		for i from 0
  		append (load-input input)
  		append (save-to-argument i))
  	  (codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:get-values-instruction))
    (append (loop for output in (outputs instruction)
  		for i from 0
  		append (load-from-argument i)
  		append (save-result output))
  	  (codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:put-values-instruction))
    (append (loop for input in (inputs instruction)
  		for i from 0
  		append (load-input input)
  		append (save-to-argument i))
  	  (codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:funcall-instruction))
    `(,@(load-input (car (inputs instruction)))
      ;; Store it for the callee to access.
      ;; FIXME: probably wrong.
      ,(format nil "	mov [~a], eax	; Store callee." (+ (ash 1 30) 12))
      "	mov eax, [eax + 1]	; Load contents vector of function."
  
negative.code:     "	mov eax, [eax]	; Load the start of the code."
      "	add eax, ebx	; Add the entry-point offset."
      "	call eax	; Call the entry point."
      ";;; Ennd of FUNCALL instruction."
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
  