Changeset 9584
- Timestamp:
- May 22, 2008, 9:05:24 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp
r9572 r9584 851 851 (sarl (:$ub x8632::fixnumshift) (:%l dest))) 852 852 853 ;;; xxx -- review this again later 853 ;;; An object is of type (UNSIGNED-BYTE 32) iff 854 ;;; a) it's of type (UNSIGNED-BYTE 30) (e.g., an unsigned fixnum) 855 ;;; b) it's a bignum of length 1 and the 0'th digit is positive 856 ;;; c) it's a bignum of length 2 and the sign-digit is 0. 854 857 (define-x8632-vinsn unbox-u32 (((dest :u32)) 855 858 ((src :lisp))) … … 863 866 (andl (:$b x8632::tagmask) (:%l dest)) 864 867 (cmpl (:$b x8632::tag-misc) (:%l dest)) 865 (jne :have-tag)866 (movb (:@ x8632::misc-subtag-offset (:%l src)) (:%b dest))867 (andl (:$l #xff) (:%l dest))868 :have-tag869 (cmpl (:$b x8632::subtag-bignum) (:%l dest))870 868 (jne :bad) 871 869 (movl (:@ x8632::misc-header-offset (:%l src)) (:%l dest)) … … 885 883 (movl (:@ x8632::misc-data-offset (:%l src)) (:%l dest)) 886 884 :done) 887 888 (define-x8632-vinsn %unbox-u32 (((dest :u32))889 ((src :lisp)))890 (movl (:%l src) (:%l dest))891 (shrl (:$ub x8632::fixnumshift) (:%l dest)))892 885 893 886 ;;; xxx -- review this again later
Note:
See TracChangeset
for help on using the changeset viewer.
