Changeset 5237


Ignore:
Timestamp:
Sep 21, 2006, 3:01:47 AM (18 years ago)
Author:
Gary Byers
Message:

sign-extend/zero-extend vinsns.

File:
1 edited

Legend:

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

    r5224 r5237  
    912912  (uuo-error-reg-not-type (:%q src) (:$ub arch::error-object-not-signed-byte-64))
    913913  :done)
     914
     915(define-x8664-vinsn sign-extend-s8 (((dest :s64))
     916                                    ((src :s8)))
     917  (movsbq (:%b src) (:%q dest)))
     918
     919(define-x8664-vinsn sign-extend-s16 (((dest :s64))
     920                                     ((src :s16)))
     921  (movswq (:%w src) (:%q dest)))
     922
     923(define-x8664-vinsn sign-extend-s32 (((dest :s64))
     924                                     ((src :s32)))
     925  (movslq (:%l src) (:%q dest)))
     926
     927
     928(define-x8664-vinsn zero-extend-s8 (((dest :s64))
     929                                    ((src :u8)))
     930  (movzbl (:%b src) (:%l dest)))
     931
     932(define-x8664-vinsn zero-extend-u16 (((dest :s64))
     933                                     ((src :u16)))
     934  (movzwl (:%w src) (:%l dest)))
     935
     936(define-x8664-vinsn zero-extend-u32 (((dest :s64))
     937                                     ((src :u32)))
     938  (movl (:%l src) (:%l dest)))
    914939
    915940(define-x8664-vinsn (jump-subprim :jumpLR) (()
Note: See TracChangeset for help on using the changeset viewer.