Changeset 15419


Ignore:
Timestamp:
Jul 5, 2012, 9:22:00 AM (7 years ago)
Author:
gb
Message:

arm-arch.lisp: get ARM::MAX-64-BIT-CONSTANT-INDEX right for the

(relatively) new order.

arm2.lisp: arm2-vref1,arm2-vset1: use 255 for max constant index for

single-float-vector

arm2-reg-for-form: make sure that single-/double-float-zero is a
register-spec

Location:
trunk/source/compiler/ARM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/ARM/arm-arch.lisp

    r15340 r15419  
    655655(defconstant stack-alloc-marker subtag-stack-alloc-marker)
    656656
    657 (defconstant max-64-bit-constant-index (ash (+ #xfff arm::misc-dfloat-offset) -3))
     657(defconstant max-64-bit-constant-index 127)
    658658(defconstant max-32-bit-constant-index (ash (+ #xfff arm::misc-data-offset) -2))
    659659(defconstant max-16-bit-constant-index (ash (+ #xfff arm::misc-data-offset) -1))
  • trunk/source/compiler/ARM/arm2.lisp

    r15340 r15419  
    13061306               (if (and (= (get-regspec-mode hint) hard-reg-class-fpr-mode-single)
    13071307                        (eql val 0.0f0))
    1308                  arm::single-float-zero
     1308                 (make-hard-fp-reg (hard-regspec-value arm::single-float-zero) hard-reg-class-fpr-mode-single)
    13091309                 (if (and (= (get-regspec-mode hint) hard-reg-class-fpr-mode-double)
    13101310                          (eql val 0.0d0))
    1311                    arm::double-float-zero))))))))
     1311                   (make-hard-fp-reg (hard-regspec-value arm::double-float-zero))))))))))
    13121312         
    13131313   
     
    15411541                          (eql vreg-mode hard-reg-class-fpr-mode-single))
    15421542                   (setf fp-val vreg temp-is-vreg t)))
    1543                (if (and index-known-fixnum (<= index-known-fixnum (arch::target-max-32-bit-constant-index arch)))
     1543               (if (and index-known-fixnum (<= index-known-fixnum
     1544                                               (if (eq type-keyword :single-float-vector)
     1545                                                 255
     1546                                                 (arch::target-max-32-bit-constant-index arch))))
    15441547                 (cond ((eq type-keyword :single-float-vector)
    15451548                        (! misc-ref-c-single-float fp-val src index-known-fixnum))
     
    22802283                       (if (and index-known-fixnum
    22812284                                (<= index-known-fixnum
    2282                                     (arch::target-max-32-bit-constant-index arch)))
     2285                                    (if (and (eq type-keyword :single-float-vector)
     2286                                             (eq (hard-regspec-class unboxed-val-reg)
     2287                                                 hard-reg-class-fpr))
     2288                                      255
     2289                                      (arch::target-max-32-bit-constant-index arch))))
    22832290                         (if (eq type-keyword :single-float-vector)
    22842291                           (if (eq (hard-regspec-class unboxed-val-reg)
Note: See TracChangeset for help on using the changeset viewer.