Changeset 6423 for branches/x8664-call


Ignore:
Timestamp:
May 4, 2007, 2:24:50 PM (13 years ago)
Author:
gb
Message:

Unsafe unboxing.

File:
1 edited

Legend:

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

    r6395 r6423  
    861861  (shrq (:$ub x8664::fixnumshift) (:%q dest)))
    862862
     863(define-x8664-vinsn %unbox-u16 (((dest :u16))
     864                              ((src :lisp)))
     865  (movq (:%q src) (:%q dest))
     866  (shrq (:$ub x8664::fixnumshift) (:%q dest)))
     867
    863868(define-x8664-vinsn unbox-s16 (((dest :s16))
    864869                              ((src :lisp)))
     
    875880  (sarq (:$ub x8664::fixnumshift) (:%q dest)))
    876881
     882(define-x8664-vinsn %unbox-s16 (((dest :s16))
     883                                ((src :lisp)))
     884  (movq (:%q src) (:%q dest))
     885  (sarq (:$ub x8664::fixnumshift) (:%q dest)))
     886
    877887(define-x8664-vinsn unbox-u32 (((dest :u32))
    878888                              ((src :lisp)))
     
    882892  (uuo-error-reg-not-type (:%q src) (:$ub arch::error-object-not-unsigned-byte-32))
    883893  :ok
     894  (movq (:%q src) (:%q dest))
     895  (shrq (:$ub x8664::fixnumshift) (:%q dest)))
     896
     897(define-x8664-vinsn %unbox-u32 (((dest :u32))
     898                              ((src :lisp)))
     899
    884900  (movq (:%q src) (:%q dest))
    885901  (shrq (:$ub x8664::fixnumshift) (:%q dest)))
     
    898914  :got-it
    899915  (sarq (:$ub x8664::fixnumshift) (:%q dest)))
     916
     917(define-x8664-vinsn %unbox-s32 (((dest :s32))
     918                               ((src :lisp)))
     919  (movq (:%q src) (:%q dest))
     920  (sarq (:$ub x8664::fixnumshift) (:%q dest)))
     921
    900922
    901923(define-x8664-vinsn unbox-u64 (((dest :u64))
Note: See TracChangeset for help on using the changeset viewer.