Changeset 14231


Ignore:
Timestamp:
Sep 2, 2010, 1:37:05 AM (9 years ago)
Author:
rme
Message:

Open-code ASH in cases where the integer is a fixnum, and the shift
count is known to be a sufficiently small positive integer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/nx1.lisp

    r14229 r14231  
    22552255                       (nx1-form num)
    22562256                       (nx1-form amt)))
     2257          ((fixnump num)
     2258           (let* ((field-width (1+ (integer-length num)))
     2259                  ;; num fits in a `(signed-byte ,field-width)
     2260                  (max-shift (- (1+ maxbits) field-width)))
     2261             (if (nx-form-typep amt `(mod ,(1+ max-shift)) env)
     2262               (nx1-form `(%ilsl ,amt ,num))
     2263               (nx1-treat-as-call call))))
    22572264          (t (nx1-treat-as-call call)))))
    22582265
Note: See TracChangeset for help on using the changeset viewer.