Changeset 15283


Ignore:
Timestamp:
Mar 28, 2012, 8:59:48 PM (7 years ago)
Author:
gb
Message:

Saner, simpler %SET-Z-FLAG-IF-U64-FITS-IN-FIXNUM vinsn.

File:
1 edited

Legend:

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

    r15114 r15283  
    12941294
    12951295(define-x8664-vinsn %set-z-flag-if-u64-fits-in-fixnum (((dest :imm))
    1296                                                        ((src :u64))
    1297                                                        ((temp :u64)))
    1298   (movq (:%q src) (:%q temp))
    1299   (shlq (:$ub (1+ x8664::fixnumshift)) (:%q temp))
    1300   (movq (:%q temp) (:%q dest))          ; tagged as an even fixnum
    1301   (shrq (:$ub (1+ x8664::fixnumshift)) (:%q temp))
    1302   (shrq (:%q dest))
    1303   (cmpq (:%q src) (:%q temp))
    1304   :done)
     1296                                                       ((src :u64)))
     1297  (movq (:$q (ash #xf 60)) (:%q dest))
     1298  (testq (:%q dest) (:%q src))
     1299  (leaq (:@ (:%q src) x8664::fixnumone) (:% dest)))
    13051300
    13061301
Note: See TracChangeset for help on using the changeset viewer.