Changeset 11108


Ignore:
Timestamp:
Oct 16, 2008, 8:04:42 PM (11 years ago)
Author:
gb
Message:

Avoid partial register writes in a couple of cases. The andq in %iasr-c
is a little bigger than the andb, but seems to be faster in many cases.

File:
1 edited

Legend:

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

    r10984 r11108  
    694694                                         ((object :lisp))
    695695                                         ((tag :u8)))
    696   (movb (:%b object) (:%b tag))
    697   (andb (:$b x8664::fulltagmask) (:%b tag))
    698   (cmpb (:$b x8664::fulltag-cons) (:%b tag)))
     696  (movl (:%l object) (:%l tag))
     697  (andl (:$b x8664::fulltagmask) (:%l tag))
     698  (cmpl (:$b x8664::fulltag-cons) (:%l tag)))
    699699
    700700(define-x8664-vinsn trap-unless-uvector (()
     
    27202720  (movq (:%q src) (:%q temp))
    27212721  (sarq (:$ub count) (:%q temp))
    2722   (andb (:$b (lognot x8664::fixnummask)) (:%b temp))
     2722  (andq (:$b (lognot x8664::fixnummask)) (:%q temp))
    27232723  (movq (:%q temp) (:%q dest)))
    27242724
Note: See TracChangeset for help on using the changeset viewer.