Changeset 9302


Ignore:
Timestamp:
Apr 27, 2008, 6:03:17 AM (11 years ago)
Author:
rme
Message:

x862-vset1: remove some apparently unecessary with-add'l-imm-reg forms

x862-vset: use with-node-temps to mark temp0 in use. (Might need to do
this in other arm of the cond form, too.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/compiler/X86/x862.lisp

    r9264 r9302  
    16771677                            (! u32->char target temp)
    16781678                            (! box-fixnum target temp)))))))
    1679              (with-additional-imm-reg ()
    1680                (with-imm-target () idx-reg
    1681                  (if index-known-fixnum
    1682                    (x862-absolute-natural seg idx-reg nil (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum 2)))
    1683                    (! scale-32bit-misc-index idx-reg unscaled-idx))
    1684                  (cond ((eq type-keyword :single-float-vector)
    1685                         (with-fp-target () (fp-val :single-float)
    1686                           (if (and (eql vreg-class hard-reg-class-fpr)
    1687                                    (eql vreg-mode hard-reg-class-fpr-mode-single))
    1688                             (setq fp-val vreg))
    1689                           (! misc-ref-single-float fp-val src idx-reg)
    1690                           (if (eq vreg-class hard-reg-class-fpr)
    1691                             (<- fp-val)
    1692                             (ensuring-node-target (target vreg)
    1693                               (! single->node target fp-val)))))
    1694                        (t (with-additional-imm-reg ()
    1695                             (with-imm-target () temp
    1696                               (if is-signed
    1697                                 (! misc-ref-s32 temp src idx-reg)
    1698                                 (! misc-ref-u32 temp src idx-reg))
    1699                               (ensuring-node-target (target vreg)
    1700                                 (if (eq type-keyword :simple-string)
    1701                                   (! u32->char target temp)
    1702                                   (! box-fixnum target temp)))))))))))
     1679             (with-imm-target () idx-reg
     1680               (if index-known-fixnum
     1681                 (x862-absolute-natural seg idx-reg nil (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum 2)))
     1682                 (! scale-32bit-misc-index idx-reg unscaled-idx))
     1683               (cond ((eq type-keyword :single-float-vector)
     1684                      (with-fp-target () (fp-val :single-float)
     1685                        (if (and (eql vreg-class hard-reg-class-fpr)
     1686                                 (eql vreg-mode hard-reg-class-fpr-mode-single))
     1687                          (setq fp-val vreg))
     1688                        (! misc-ref-single-float fp-val src idx-reg)
     1689                        (if (eq vreg-class hard-reg-class-fpr)
     1690                          (<- fp-val)
     1691                          (ensuring-node-target (target vreg)
     1692                            (! single->node target fp-val)))))
     1693                     (t
     1694                      (with-imm-target () temp
     1695                        (if is-signed
     1696                          (! misc-ref-s32 temp src idx-reg)
     1697                          (! misc-ref-u32 temp src idx-reg))
     1698                        (ensuring-node-target (target vreg)
     1699                          (if (eq type-keyword :simple-string)
     1700                            (! u32->char target temp)
     1701                            (! box-fixnum target temp)))))))))
    17031702          (is-8-bit
    17041703           (with-imm-target () temp
     
    24882487           (index-known-fixnum (acode-fixnum-form-p index)))
    24892488      (let* ((src (target-arch-case
    2490                    (:x8632 ($ x8632::temp0)) ;xxx ?
     2489                   (:x8632 ($ x8632::temp0))
    24912490                   (:x8664 ($ x8664::arg_x))))
    24922491             (unscaled-idx ($ *x862-arg-y*))
     
    24992498              (t
    25002499               (setq result-reg (x862-target-reg-for-aset vreg type-keyword))
    2501                (x862-three-targeted-reg-forms seg
    2502                                               vector src
    2503                                               index unscaled-idx
    2504                                               value result-reg)))
     2500               (target-arch-case
     2501                (:x8632
     2502                 (with-node-temps (src) ()
     2503                   (x862-three-targeted-reg-forms seg
     2504                                                  vector src
     2505                                                  index unscaled-idx
     2506                                                  value result-reg)))
     2507                (:x8664
     2508                 (x862-three-targeted-reg-forms seg
     2509                                                vector src
     2510                                                index unscaled-idx
     2511                                                value result-reg)))))
    25052512        (when safe
    25062513          (with-additional-imm-reg (src unscaled-idx result-reg)
     
    58895896                                              (:x8632 ($ x8632::temp0))
    58905897                                              (:x8664 ($ x8664::arg_x)))
    5891                                               form2 ($ *x862-arg-y*)
    5892                                               form3 ($ *x862-arg-z*))
     5898                                   form2 ($ *x862-arg-y*)
     5899                                   form3 ($ *x862-arg-z*))
    58935900    (x862-fixed-call-builtin seg vreg xfer name (subprim-name->offset '.SPcallbuiltin3))))
    58945901
Note: See TracChangeset for help on using the changeset viewer.