anchor.diff:  RETURN:  POLY; the remainder (unsigned-byte 32)..
   "
     (multiple-value-bind (tt3 n p0 p1 p2 p3) (%division poly gg)
  -    (setf (aref poly 3) (logior (ash p3 (- n 32)) (ash p2 n))
  -          (aref poly 2) (logior (ash p2 (- n 32)) (ash p1 n))
  -          (aref poly 1) (logior (ash p1 (- n 32)) (ash p0 n))
  -          (aref poly 0) (ash p0 (- n 32))))
  -  (values poly tt3))
  +    ;; Renormalize the quotient
  +    (setf (aref poly 3) (logand (logior (ash p3 (- n 32)) (ash p2 n)) #xffffffff)
  +          (aref poly 2) (logand (logior (ash p2 (- n 32)) (ash p1 n)) #xffffffff)
  +          (aref poly 1) (logand (logior (ash p1 (- n 32)) (ash p0 n)) #xffffffff)
  +          (aref poly 0) (logand (ash p0 (- n 32)) #xffffffff))
  +    (values poly tt3)))
   
   
   (defun remainder32 (poly gg)
  
positive.code:                    p2 (logxor p2 tt2)
                     p3 (logxor p3 tt3))
               (setf gg (ash gg -1)
                     tt0 (logior (ash tt0 1) (ash tt1 -31))
                     tt1 (logior (ash tt1 1) (ash tt2 -31))
                     tt2 (logior (ash tt2 1) (ash tt3 -31))
                     tt3 (ash tt3 1))))
      (setf (aref poly 0) p0
            (aref poly 1) p1
            (aref poly 2) p2
  
negative.code:   (check-type poly poly)
    (let (bit0 bit1 bit2 bit3)
      (setf bit0 (aref poly 0)
            (aref poly 0) (logand (ash (aref poly 0) -1) #xffffffff)
            bit1 (aref poly 1)
            (aref poly 1) (logand (logior (ash bit1 -1) (ash (logand bit0 1) 31)) #xffffffff)
            bit2 (aref poly 2)
            (aref poly 2) (logand (logior (ash bit2 -1) (ash (logand bit1 1) 31)) #xffffffff)
            bit3 (aref poly 3)
            (aref poly 3) (logior (logand (logior (ash bit3 -1) (ash bit2 31)) #xffffff80)
                                  (logand bit3 #x7f)))
      poly))
  
  