Changeset 14059


Ignore:
Timestamp:
Jul 27, 2010, 10:49:54 PM (9 years ago)
Author:
gb
Message:

arm2.lisp: in ARM2-SPREAD-LAMBDA-LIST, get the bits in the doadlword
bitmap to be sane and consistent with wha the kernel expects.
optimizers.lisp: do REALP via a single comparison/logbitp on ARM.
(aside from being a bit faster, the old approach was returning T
for (REALP NIL)).

Location:
branches/arm/compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm2.lisp

    r14042 r14059  
    48084808        (incf  vtotal (%ilsl 1 nkeys))
    48094809        (if (%car keys)                 ; &allow-other-keys
    4810           (setq doadlword (%ilogior doadlword (ash #x80000000 -5))))
     4810          (setq doadlword (%ilogior doadlword (ash 1 26))))
    48114811        (arm2-store-immediate seg (%car (%cdr (%cdr (%cdr (%cdr keys))))) arm::temp2))
    48124812      (when opt
     
    48164816          (setq vtotal (%i+ vtotal numopt))))
    48174817      (when rest
    4818         (setq doadlword (%ilogior2 (ash 1 26) doadlword) vtotal (%i+ vtotal 1)))
     4818        (setq doadlword (%ilogior2 (ash 1 27) doadlword) vtotal (%i+ vtotal 1)))
    48194819      (arm2-reserve-vstack-lcells vtotal)
    48204820      (! load-adl doadlword)
  • branches/arm/compiler/optimizers.lisp

    r13948 r14059  
    21082108        (declare (type (unsigned-byte 8) ,typecode))
    21092109        #+(or ppc32-target x8632-target arm-target)
    2110         (or (= ,typecode target::tag-fixnum)
    2111          (and (>= ,typecode target::min-numeric-subtag)
    2112           (<= ,typecode target::max-real-subtag)))
     2110        (and (<= ,typecode target::max-real-subtag)
     2111         (logbitp (the (integer 0 ,target::max-real-subtag)
     2112                    ,typecode)
     2113                    (logior (ash 1 target::tag-fixnum)
     2114                           (ash 1 target::subtag-single-float)
     2115                           (ash 1 target::subtag-double-float)
     2116                           (ash 1 target::subtag-bignum)
     2117                           (ash 1 target::subtag-ratio) )))
    21132118        #+ppc64-target
    21142119        (if (<= ,typecode ppc64::subtag-double-float)
Note: See TracChangeset for help on using the changeset viewer.