anchor.diff:           (parse-object-ea (rest form) (first form) 1))
           ((eql (first form) :object-unscaled)
            (parse-object-ea form nil 1))
  +        ((and (member (first form) '(:cs :ss :ds :es :fs :gs))
  +              (eql (second form) :object-location))
  +         (parse-object-ea (rest form) (first form) :location))
  +        ((eql (first form) :object-location)
  +         (parse-object-ea form nil :location))
           (t (let (base index scale disp rip-relative segment)
                (dolist (elt form)
                  (cond ((eql elt :rip)
  
positive.code:             (if index scale nil)
              ;; subtract +tag-object+, skip object header.
              ;; Return an expression, so slot goes through symbol resolution, etc.
              `(+ (- ,sys.int::+tag-object+) 8 (* ,slot ,slot-scale))
              nil
              segment)))
  
  
negative.code:       (emit 0 0 0 0))))
  
  (defun parse-object-ea (form segment slot-scale)
    (destructuring-bind (base slot &optional index (scale 8) &key (offset 0))
        (rest form)
      (values nil
              base
  