1.0.27.14: bias x86oid frame pointer
[sbcl.git] / src / compiler / x86-64 / char.lisp
index 8e92290..b70458c 100644 (file)
       (character-stack
        #!-sb-unicode
        (inst mov
-             ;; FIXME: naked 8 (should be... what?  n-register-bytes?
-             ;; n-word-bytes?  Dunno.
-             (make-ea :byte :base fp :disp (- (* (1+ (tn-offset y)) 8)))
+             ;; XXX: If the sb-unicode case needs to handle c-call,
+             ;; why does the non-unicode case not need to?
+             (make-ea :byte :base fp :disp (frame-byte-offset (tn-offset y)))
              x)
        #!+sb-unicode
        (if (= (tn-offset fp) esp-offset)
-           (storew x fp (tn-offset y)) ; c-call
-           (storew x fp (- (1+ (tn-offset y)))))))))
+           (storew x fp (tn-offset y))  ; c-call
+           (storew x fp (frame-word-offset (tn-offset y))))))))
 (define-move-vop move-character-arg :move-arg
   (any-reg character-reg) (character-reg))