Changeset 5343


Ignore:
Timestamp:
Oct 14, 2006, 5:20:05 AM (18 years ago)
Author:
Gary Byers
Message:

Do vector bounds-checking a little differently.

Add xchg-registers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/X86/X8664/x8664-vinsns.lisp

    r5263 r5343  
    634634                                       (v :lisp))
    635635                                      ((temp :u64)))
    636   (movq (:@ x8664::misc-header-offset (:%q v)) (:%q temp))
    637   (shrq (:$ub x8664::num-subtag-bits) (:%q temp))
    638   (shlq (:$ub x8664::word-shift) (:%q temp))
    639   (rcmpq (:%q idx) (:%q temp))
     636  (movq (:%q idx) (:%q temp))
     637  (shlq (:$ub (- x8664::num-subtag-bits x8664::fixnumshift)) (:%q temp))
     638  (decb (:%b temp))
     639  (rcmpq (:%q temp) (:@ x8664::misc-header-offset (:%q v)))
    640640  (jb.pt :ok)
    641641  (uuo-error-vector-bounds (:%q idx) (:%q v))
     
    39883988
    39893989
     3990(define-x8664-vinsn xchg-registers (()
     3991                                    ((a t)
     3992                                     (b t)))
     3993  (xchgq (:%q a) (:%q b)))
     3994
    39903995(queue-fixup
    39913996 (fixup-x86-vinsn-templates
Note: See TracChangeset for help on using the changeset viewer.