Changeset 8238


Ignore:
Timestamp:
Jan 23, 2008, 6:06:48 AM (12 years ago)
Author:
gb
Message:

Avoid partial-register ops in SET-NARGS.

File:
1 edited

Legend:

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

    r8203 r8238  
    291291(define-x8664-vinsn set-nargs (()
    292292                               ((n :s16const)))
    293   ((:pred = n 0)
    294    (xorw (:%w x8664::nargs ) (:%w x8664::nargs )))
    295   ((:not (:pred = n 0))
    296    (movw (:$w (:apply ash n x8664::word-shift)) (:%w x8664::nargs ))))
     293
     294  ((:pred < n 16)
     295   (xorl (:%l x8664::nargs.l ) (:%l x8664::nargs.l ))
     296   ((:pred > n 0)
     297    (addl (:$b (:apply ash n x8664::word-shift)) (:%l  x8664::nargs.l))))
     298  ((:pred >= n 16)
     299   (movl (:$l (:apply ash n x8664::word-shift)) (:%l x8664::nargs.l ))))
    297300
    298301(define-x8664-vinsn check-exact-nargs (()
Note: See TracChangeset for help on using the changeset viewer.