Changeset 5150


Ignore:
Timestamp:
Sep 6, 2006, 5:35:00 PM (18 years ago)
Author:
Gary Byers
Message:

zero-extend early when extracting typecodes.

File:
1 edited

Legend:

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

    r5146 r5150  
    683683(define-x8664-vinsn extract-tag (((tag :u8))
    684684                                 ((object :lisp)))
    685   (movb (:%b object) (:%b tag))
     685  (movzbl (:%b object) (:%l tag))
    686686  (andb (:$b x8664::tagmask) (:%b tag)))
    687687
     
    693693(define-x8664-vinsn extract-fulltag (((tag :u8))
    694694                                 ((object :lisp)))
    695   (movb (:%b object) (:%b tag))
     695  (movzbl (:%b object) (:%l tag))
    696696  (andb (:$b x8664::fulltagmask) (:%b tag)))
    697697
     
    701701  (andl (:$b (ash x8664::fulltagmask x8664::fixnumshift)) (:%l tag)))
    702702
    703 (define-x8664-vinsn extract-typecode (((tag :u8))
     703(define-x8664-vinsn extract-typecode (((tag :u32))
    704704                                      ((object :lisp)))
    705   (movb (:%b object) (:%b tag))
     705  (movzbl (:%b object) (:%l tag))
    706706  (andb (:$b x8664::tagmask) (:%b tag))
    707707  (cmpb (:$b x8664::tag-misc) (:%b tag))
     
    712712(define-x8664-vinsn extract-typecode-fixnum (((tag :imm))
    713713                                             ((object :lisp))
    714                                              ((temp :u8)))
    715   (movb (:%b object) (:%b temp))
     714                                             ((temp :u32)))
     715  (movzbl (:%b object) (:%l temp))
    716716  (andb (:$b x8664::tagmask) (:%b temp))
    717717  (cmpb (:$b x8664::tag-misc) (:%b temp))
     
    719719  (movb (:@ x8664::misc-subtag-offset (:%q object)) (:%b temp))
    720720  :have-tag
    721   (movzbl (:%b temp) (:%l temp))
    722721  (leal (:@ (:%q temp) 8) (:%l tag)))
    723722
Note: See TracChangeset for help on using the changeset viewer.